概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## kinugasa.ui
クラス SelectableMessageWindow

    java.lang.Object
      kinugasa.object.Sprite
          kinugasa.object.BasicSprite
              kinugasa.ui.MessageWindow
                  kinugasa.ui.SelectableMessageWindow

すべての実装されたインタフェース:
  java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<Sprite>, Controllable, Drawable, Shapeable

直系の既知のサブクラス:
  ConfirmMessageWindow

    public class SelectableMessageWindow

extends MessageWindow

Kinugasa : SelectableMessageWindow : 1つ以上の選択肢から内容を選ばせることができるメッセージウインドウの拡張クラスです.
選択メッセージウインドウは1つの質問文と0こ以上の選択肢を持ちます。
質問文は改行"\n"を利用可能です。選択肢は改行できません。
選択中の選択肢を指し示すにはCHoiceEffectクラスを使用します。
ChoiceEffectはメッセージウインドウ内のラベルの選択中インデックスの要素に適用されます。
選択された選択肢は選択肢のテキストやラベル配列のインデックスを取得することで 区別することができます。
このメッセージウインドウは選択エフェクトがnullの場合は、選択エフェクトを表示しません。
したがって、選択肢のない普通のメッセージであっても表示可能です。
これを利用して、途中で選択肢を与える会話イベントをこの選択メッセージウインドウを使用して 作成することで、ウインドウを切り替えずに選択イベントを発生させることができます。
このウインドウの実装では、すべてのラベルが表示されるまで選択エフェクトが描画されません。
これは一部のメソッドによる選択された値を取得に影響します。

バージョン:
  1.0.0 - 2012/11/23_21:19:46.
作成者:
  Dra0211
関連項目:
  直列化された形式

フィールドの概要
`private ChoiceEffect` | `choiceEffect` この選択メッセージウインドウが使用する選択エフェクトです.
`private int` | `maxIndex` 選択可能な最大のインデックスです.
`private int` | `minIndex` 選択可能な最少のインデックスです.
`static int` | `NOT_YET_SELECTED` 全てのラベルが表示されていないために、何も選択されていない状態を表すインデックスの定数です.
`private int` | `selectedIndex` 現在選択中のラベルのインデックスです.
`private static long` | `serialVersionUID`

クラス kinugasa.ui.MessageWindow から継承されたフィールド
`labels`

コンストラクタの概要
`SelectableMessageWindow(float x, float y, float width, float height, MessageWindowModel wm, LabelModel lm, java.lang.String text, int initialIdx, int minIdx, int maxIdx, ChoiceEffect choiceEffect)` 新しい選択メッセージウインドウを作成します.
`SelectableMessageWindow(float x, float y, float width, float height, MessageWindowModel wm, LabelModel lm, TimeCounter tc, java.lang.String text, int initialIdx, int minIdx, int maxIdx, ChoiceEffect choiceEffect)` 新しい選択メッセージウインドウを作成します.

メソッドの概要
`protected void` | `clamp()` インデックスを有効範囲内に切り詰めます.
`SelectableMessageWindow` | `clone()` このスプライトの複製を作成します.
`void` | `draw(java.awt.Graphics2D g)` メッセージウインドウを描画します.
`ChoiceEffect` | `getChoiceEffect()` この選択メッセージウインドウに設定されているエフェクトを取得します.
`int` | `getMaxIndex()` 選択可能な最大のインデックスを取得します.
`int` | `getMinIndex()` 選択可能な最少のインデックスを取得します.
`int` | `getSelectedIndex()` 現在選択されているラベルのインデックスを取得します.
`TextLabel` | `getSelectedLabel()` 現在選択されているラベルを取得します.
`void` | `nextChoice()` 選択中の選択肢を1つ次の選択肢へと移します.
`void` | `nextChoiceLoop()` 選択中の選択肢を1つ次の選択肢へと移します.
`void` | `prevChoice()` 選択中の選択肢を1つ前の選択肢へと移します.
`void` | `prevChoiceLoop()` 選択中の選択肢を1つ前の選択肢へと移します.
`void` | `select(int idx)` あるインデックスの選択肢を選択状態にします.
`void` | `setChoiceEffect(ChoiceEffect choiceEffect)` この選択メッセージウインドウに新しい選択エフェクトを設定します.
`void` | `setMaxIndex(int maxIndex)` 選択可能な最大のインデックスを設定します.
`void` | `setMinIndex(int minIndex)` 選択可能な最少のインデックスを設定します.

クラス kinugasa.ui.MessageWindow から継承されたメソッド
`allText, getIcon, getLabel, getLabels, getSeparator, getWindowModel, isAllTextVisible, move, move, move, move, setIcon, setLabels, setSeparator, setSound, setText, setText, setText, setText, setWindowModel, skip`

クラス kinugasa.object.BasicSprite から継承されたメソッド
`getAngle, getMovingModel, getMovingModel, getNextCenter, getNextLocation, getSpeed, getVector, setAngle, setMovingModel, setSpeed, setVector, toString`

クラス kinugasa.object.Sprite から継承されたメソッド
`compareTo, contains, getBounds, getCenter, getCenterX, getCenterY, getHeight, getHitBounds, getLocation, getPersonalCenter, getPersonalCenterX, getPersonalCenterY, getSize, getStatus, getWidth, getX, getY, getZ, isExist, isVisible, setBounds, setBounds, setBounds, setExist, setHeight, setLocation, setLocation, setSize, setSize, setStatus, setVisible, setWidth, setX, setY, setZ, update, updateCenter, updatePersonalCenter`

クラス java.lang.Object から継承されたメソッド
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

フィールドの詳細

### serialVersionUID

    private static final long serialVersionUID

関連項目:
  定数フィールド値

### choiceEffect

    private ChoiceEffect choiceEffect

  この選択メッセージウインドウが使用する選択エフェクトです.

### selectedIndex

    private int selectedIndex

  現在選択中のラベルのインデックスです.

### minIndex

    private int minIndex

  選択可能な最少のインデックスです.

### maxIndex

    private int maxIndex

  選択可能な最大のインデックスです.

### NOT_YET_SELECTED

    public static final int NOT_YET_SELECTED

  全てのラベルが表示されていないために、何も選択されていない状態を表すインデックスの定数です.

  関連項目:
    定数フィールド値

コンストラクタの詳細

### SelectableMessageWindow

    public SelectableMessageWindow(float x,
                                   float y,
                                   float width,
                                   float height,
                                   MessageWindowModel wm,
                                   LabelModel lm,
                                   java.lang.String text,
                                   int initialIdx,
                                   int minIdx,
                                   int maxIdx,
                                   ChoiceEffect choiceEffect)
                            throws java.lang.NullPointerException,
                                   java.lang.IllegalArgumentException

  新しい選択メッセージウインドウを作成します. インデックスは配列のインデックスです。通常は、質問文が0番目となり、初期値は1、最少も1、最大は 選択肢の数になります。
  ただし、選択肢のインデックスは質問文の行数の影響を受けます。質問文が2行ある場合は初期値は2となります。
  このコンストラクタではラベルの表示遅延時間は0に設定されます。したがって、すべてのラベルが最初から表示されます。

  パラメータ:
    `x` - ウインドウのX座標を指定します。
    `y` - ウインドウのY座標を指定します。
    `width` - ウインドウの幅を指定します。
    `height` - ウインドウの高さを指定します。
    `wm` - ウインドウの表示モデルを指定します。
    `lm` - ウインドウ内のラベルに適用されるラベルモデルを指定します。
    `text` - 質問文です。改行"\n"を利用できます。
    `initialIdx` - 最初に選択されている選択肢のインデックスを指定します。
    `minIdx` - 選択可能なインデックスの最小値を指定します。
    `maxIdx` - 選択可能なインデックスの最小値を指定します。
    `choiceEffect` - 選択エフェクトを指定します。nullを許容します。
  例外:
    `java.lang.NullPointerException` - テキストがnullである場合に投げられます。
    `java.lang.IllegalArgumentException` - minIdx > maxIdxのときに投げられます。

### SelectableMessageWindow

    public SelectableMessageWindow(float x,
                                   float y,
                                   float width,
                                   float height,
                                   MessageWindowModel wm,
                                   LabelModel lm,
                                   TimeCounter tc,
                                   java.lang.String text,
                                   int initialIdx,
                                   int minIdx,
                                   int maxIdx,
                                   ChoiceEffect choiceEffect)
                            throws java.lang.NullPointerException,
                                   java.lang.IllegalArgumentException

  新しい選択メッセージウインドウを作成します. インデックスは配列のインデックスです。通常は、質問文が0番目となり、初期値は1、最少も1、最大は 選択肢の数になります。
  ただし、選択肢のインデックスは質問文の行数の影響を受けます。質問文が2行ある場合は初期値は2となります。

  パラメータ:
    `x` - ウインドウのX座標を指定します。
    `y` - ウインドウのY座標を指定します。
    `width` - ウインドウの幅を指定します。
    `height` - ウインドウの高さを指定します。
    `wm` - ウインドウの表示モデルを指定します。
    `lm` - ウインドウ内のラベルに適用されるラベルモデルを指定します。
    `tc` - ラベルに適用するタイムカウンタを指定します。実際はクローンが使用されます。
    `text` - 質問文です。改行"\n"を利用できます。
    `initialIdx` - 最初に選択されている選択肢のインデックスを指定します。
    `minIdx` - 選択可能なインデックスの最小値を指定します。
    `maxIdx` - 選択可能なインデックスの最小値を指定します。
    `choiceEffect` - 選択エフェクトを指定します。nullを許容します。
  例外:
    `java.lang.NullPointerException` - テキストがnullである場合に投げられます。
    `java.lang.IllegalArgumentException` - minIdx > maxIdxのときに投げられます。

メソッドの詳細

### getMinIndex

    public int getMinIndex()

  選択可能な最少のインデックスを取得します.

  戻り値:
    選択可能な最少のインデックスを返します。

### setMinIndex

    public void setMinIndex(int minIndex)

  選択可能な最少のインデックスを設定します.

  パラメータ:
    `minIndex` - 選択可能な最少のインデックスを返します。

### getMaxIndex

    public int getMaxIndex()

  選択可能な最大のインデックスを取得します.

  戻り値:
    選択可能な最大のインデックスを返します。

### setMaxIndex

    public void setMaxIndex(int maxIndex)

  選択可能な最大のインデックスを設定します.

  パラメータ:
    `maxIndex` - 選択可能な最大のインデックスを返します。

### setChoiceEffect

    public void setChoiceEffect(ChoiceEffect choiceEffect)

  この選択メッセージウインドウに新しい選択エフェクトを設定します.

  パラメータ:
    `choiceEffect` - 選択エフェクトの実装を送信します。nullを許容します。

### getChoiceEffect

    public ChoiceEffect getChoiceEffect()

  この選択メッセージウインドウに設定されているエフェクトを取得します.

  戻り値:
    設定されている選択エフェクトの実装を返します。設定されていない場合は nullが設定されている場合は、nullをを返します。

### nextChoice

    public void nextChoice()

  選択中の選択肢を1つ次の選択肢へと移します. このメソッドは現在選択されている選択肢が最後の(最大のインデックスを持つ)選択肢である場合は 何も行いません。

### nextChoiceLoop

    public void nextChoiceLoop()

  選択中の選択肢を1つ次の選択肢へと移します. このメソッドは現在選択されている選択肢が最後の(最大のインデックスを持つ)選択肢である場合は 最初の(最少のインデックスを持つ)選択肢を選択します。

### prevChoice

    public void prevChoice()

  選択中の選択肢を1つ前の選択肢へと移します. このメソッドは現在選択されている選択肢が最初の(最少のインデックスを持つ)選択肢である場合は 何も行いません。

### prevChoiceLoop

    public void prevChoiceLoop()

  選択中の選択肢を1つ前の選択肢へと移します. このメソッドは現在選択されている選択肢が最初の(最少のインデックスを持つ)選択肢である場合は 最後の(最大のインデックスを持つ)選択肢を選択します。

### select

    public final void select(int idx)
                      throws java.lang.IllegalArgumentException

  あるインデックスの選択肢を選択状態にします.

  パラメータ:
    `idx` - 選択するインデックスを送信します。
  例外:
    `java.lang.IllegalArgumentException` - idx >= labels.length || minIndex > idx || maxIndex < idxのときに投げられます。

### clamp

    protected final void clamp()

  インデックスを有効範囲内に切り詰めます.

### getSelectedLabel

    public TextLabel getSelectedLabel()

  現在選択されているラベルを取得します.

  戻り値:
    選択中のラベルを返します。全てのラベルが表示されていない場合(!isAllTextVisible()のとき) はnullを返します。

### getSelectedIndex

    public int getSelectedIndex()

  現在選択されているラベルのインデックスを取得します.

  戻り値:
    選択中のラベルのインデックスを返します。全てのラベルが表示されていない場合(!isAllTextVisible()のとき) はNOT_YET_SELECTEDを返します。

### draw

    public void draw(java.awt.Graphics2D g)

  クラス `MessageWindow` の記述:
  メッセージウインドウを描画します. 描画では、まず、ウインドウ自体の可視状態の判定が行われます.
  次にウインドウモデルによってウインドウの下地およびラベルが描画されます.
  最後にアイコンが設定されている場合はアイコンを描画します.

  定義:
    インタフェース `Drawable` 内の `draw`
  オーバーライド:
    クラス `MessageWindow` 内の `draw`
  パラメータ:
    `g` - 書き込むグラフィックスコンテキスト.

### clone

    public SelectableMessageWindow clone()

  クラス `BasicSprite` の記述:
  このスプライトの複製を作成します. このメソッドでは、全てのフィールドをクローニングします.
  このメソッドはサブクラスで適切にオーバーライドしてください.

  オーバーライド:
    クラス `MessageWindow` 内の `clone`
  戻り値:
    このスプライトと同じ設定の新しいインスタンス.

概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド