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

## kinugasa.ui
クラス InputMessageWindow

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

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

    public class InputMessageWindow

extends MessageWindow

1つ以上の文字セットから文字列を自由に構築できる入力ウインドウです.
入力メッセージウインドウは指定された文字数までの文字列を、指定された文字セットから1文字ずつ自由に入力できる ウインドウの実装です。
ウインドウから入力された文字列は1行のラベルとして表示可能です。
このウインドウには0行以上の「質問文」、1行の「入力確認ラベル」、いくつかの「文字セット」および、 使用する場合には「コマンドラベル」が表示されます。
質問文とはプレイヤーに何を入力してもらいたいのかを指示するラベルのことです。このラベルはスーパークラスの機能を使用して 作成、描画されます。このラベルは複数行表示することができるので、テキスト中に"\n"を使用することで 改行することができます。
入力確認ラベルとは入力を確定した文字がリアルタイムに表示されるラベルです。このラベルには デフォルトで"＿"が最大文字数分表示されており、文字列を取得する際にはこの"＿"が""に置換されます。
したがって、入力文字として全角のアンダースコア"＿"を使用することはできません。
文字セットとは入力可能な文字のセットです。これはCharSetクラスを使用して定義されます。
文字セットは、通常、操作性をよくするためにいくつかのスペース" "をセット中に含ませることがあります。
したがって、文字セット中の文字は必ずしも重複してはならないというルールはありません。
文字セットはフォントが提供する文字を自由に定義可能です。たとえば漢字や他の文字であっても 入力フォームを作成することができます。
このウインドウにはラベルのプリセットとしてコマンドというラベルを構築する機能が備わっています。
このラベルは、入力を確定したりキャンセルして戻る処理を判定するためのもので、使用する場合は 文字セットの下部に表示されます。
このウインドウの実装では、独自のラベル配置アルゴリズムを用いるため、スーパークラスに設定されるラベルは 「質問文」だけです。それ以外のすべてのラベルはこのクラスに独自に格納されます。
このウインドウは、通常2つ以上表示することはないと考えられるので、 クローニングはシャローコピーとなります。すべてのラベル情報はその参照がコピーされます。
入力メッセージウインドウは、入力された文字が挿入される位置を示すためのキャレットを持ちます。
キャレットは単色の矩形として入力確認ラベルの次に文字が挿入される位置に描画されます。
最大の文字数まで入力されている場合はキャレットは表示されません。
キャレットの色はデフォルトでは透過度50%の白が設定されています。

バージョン:
  1.0.0 - 2012/11/25_14:13:24.
作成者:
  Dra0211
関連項目:
  直列化された形式

フィールドの概要
`private TimeCounter` | `caretBlinkRate` キャレットの点滅間隔です.
`private java.awt.Color` | `caretColor` キャレットの色です.
`private int` | `caretIndex` キャレットを表示する入力確認ラベルに対する文字インデックスです.
`private float` | `caretX` キャレットを描画するX軸座標です.
`private float` | `caretY` キャレットを描画するY軸座標です.
`private CharSet[]` | `charSets` 使用する文字セットです.
`private ChoiceEffect` | `choiceEffect` 文字セットの選択ラベルです.
`private TextLabel[][]` | `choiceLabels` 選択肢の配列です.
`private LabelModel` | `choicesLabelModel` 選択肢のモデルです.
`static java.lang.String` | `COMMAND_CANCEL` コマンド用ラベルの"Cancel"処理を定義するラベルの文字列です.
`static java.lang.String` | `COMMAND_OK` コマンド用ラベルの"OK"処理を定義するラベルの文字列です.
`private TextLabel[]` | `commandLabels` コマンドラベルの配列です.
`private TextLabel` | `inputValueLabel` 入力確認ラベルです.
`private int` | `maxLength` 入力可能な最大文字数です.
`private int` | `selectedIndexX` 選択中ラベルのX軸座標です.
`private int` | `selectedIndexY` 選択中ラベルのY軸座標です.
`private static long` | `serialVersionUID`

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

コンストラクタの概要
`InputMessageWindow(float x, float y, float width, float height, MessageWindowModel windowModel, LabelModel messageLabelModel, LabelModel choicesLabelModel, java.lang.String message, ChoiceEffect choiceEffect, int maxLength, boolean useCommandLabels, CharSet... charSet)` 新しい入力メッセージウインドウを作成します.

メソッドの概要
`void` | `backSpace()` 直前の入力をキャンセルし、1文字削除します.
`void` | `cancel()` 入力をキャンセルし、ウインドウを閉じます.
`private void` | `clamp()` 選択中ラベルインデックスを有効範囲内に切り詰めます.
`InputMessageWindow` | `clone()` このスプライトの複製を作成します.
`void` | `draw(java.awt.Graphics2D g)` メッセージウインドウを描画します.
`private void` | `drawCaret(java.awt.Graphics2D g)` キャレットを描画します.
`java.lang.String` | `enter()` 選択中の文字を入力し、1文字追加します.
`TimeCounter` | `getCaretBlinkRate()` キャレットの点滅間隔を取得します.
`java.awt.Color` | `getCaretColor()` キャレットの色を取得します.
`CharSet[]` | `getCharSets()` このウインドウに表示されている全ての文字セットを取得します.
`ChoiceEffect` | `getChoiceEffect()` このウインドウの文字セットに対して使用されている選択エフェクトを取得します.
`TextLabel[][]` | `getChoiceLabels()` 選択肢として表示されているすべてのラベルをその配置の2次元配列として取得します.
`java.util.List<TextLabel>` | `getChoiceLabelsList()` 選択肢として表示されているすべてのラベルをリストとして取得します.
`LabelModel` | `getChoicesLabelModel()` 選択肢として表示されているラベルのモデルを取得します.
`java.lang.String` | `getInputText()` プレイヤーによって入力された文字列を取得します.
`TextLabel` | `getInputValueLabel()` プレイヤーが入力したテキストを表示するために使用されているラベルを取得します.
`int` | `getMaxLength()` 入力可能な最大の文字数を取得します.
`int` | `getSelectedIndexX()` 選択中ラベルのY軸のインデックスを取得します.
`int` | `getSelectedIndexY()` 選択中ラベルのY軸のインデックスを取得します.
`TextLabel` | `getSelectedLabel()` 現在選択されているラベルを返します。
`java.lang.String` | `getSelectedLabelText()` 選択中のラベルのテキストを取得します.
`private void` | `initCommandLabels()` コマンドラベルを使用する場合に、座標などの初期化を行うメソッドです.
`private void` | `initLabels(boolean useCommand)` 質問文、入力確認、選択肢の各ラベルを初期化して配置します.
`boolean` | `isCancelSelected()` キャンセルコマンドを選択中であるかを調べます.
`boolean` | `isCommandSelect()` コマンドラベルを選択中であるかを調べます.
`boolean` | `isMaxInput()` プレイヤーによる現在の入力値が最大の文字数であるかを検査します.
`boolean` | `isNotYetInput()` プレイヤーによる現在の入力値が0文字であるかを検査します.
`boolean` | `isOkSelected()` 決定コマンドを選択中であるかを調べます.
`java.lang.String` | `ok()` 入力を確定し、ウインドウを閉じます.
`void` | `printAll(java.io.PrintStream stream)` このウインドウに設定されているすべての文字セット用ラベルをストリームに発行します.
`private CharSet` | `searchCharSet(char c)` このウインドウが使用している文字セットの中から文字cが含まれる文字セットを検索します.
`void` | `setCaretBlinkRate(TimeCounter cursorBlink)` キャレットの点滅間隔を設定します.
`void` | `setCaretColor(java.awt.Color caretColor)` キャレットの色を変更します.
`void` | `setChoiceEffect(ChoiceEffect choiceEffect)` このウインドウの文字セットに対して使用されている選択エフェクトを変更します.
`void` | `setSelectedIndexX(int selectedIndexX)` 選択中ラベルのX軸のインデックスを設定します.
`void` | `setSelectedIndexY(int selectedIndexY)` 選択中ラベルのY軸のインデックスを設定します.
`void` | `toDown()` 選択を下に移動します.
`void` | `toLeft()` 選択を左に移動します.
`void` | `toRight()` 選択を右に移動します.
`java.lang.String` | `toString()` スプライトの文字列表記を取得します.
`void` | `toUp()` 選択を上に移動します.

クラス 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`

クラス 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

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

### COMMAND_OK

    public static java.lang.String COMMAND_OK

  コマンド用ラベルの"OK"処理を定義するラベルの文字列です.

### COMMAND_CANCEL

    public static java.lang.String COMMAND_CANCEL

  コマンド用ラベルの"Cancel"処理を定義するラベルの文字列です.

### choiceLabels

    private TextLabel[][] choiceLabels

  選択肢の配列です. コマンドラベルを含みます.

### maxLength

    private int maxLength

  入力可能な最大文字数です.

### choicesLabelModel

    private LabelModel choicesLabelModel

  選択肢のモデルです.

### charSets

    private CharSet[] charSets

  使用する文字セットです.

### choiceEffect

    private ChoiceEffect choiceEffect

  文字セットの選択ラベルです.

### selectedIndexX

    private int selectedIndexX

  選択中ラベルのX軸座標です.

### selectedIndexY

    private int selectedIndexY

  選択中ラベルのY軸座標です.

### inputValueLabel

    private TextLabel inputValueLabel

  入力確認ラベルです.

### caretIndex

    private int caretIndex

  キャレットを表示する入力確認ラベルに対する文字インデックスです.

### caretBlinkRate

    private TimeCounter caretBlinkRate

  キャレットの点滅間隔です.

### caretX

    private float caretX

  キャレットを描画するX軸座標です.

### caretY

    private float caretY

  キャレットを描画するY軸座標です.

### caretColor

    private java.awt.Color caretColor

  キャレットの色です.

### commandLabels

    private TextLabel[] commandLabels

  コマンドラベルの配列です.

コンストラクタの詳細

### InputMessageWindow

    public InputMessageWindow(float x,
                              float y,
                              float width,
                              float height,
                              MessageWindowModel windowModel,
                              LabelModel messageLabelModel,
                              LabelModel choicesLabelModel,
                              java.lang.String message,
                              ChoiceEffect choiceEffect,
                              int maxLength,
                              boolean useCommandLabels,
                              CharSet... charSet)
                       throws java.lang.IllegalArgumentException,
                              java.lang.NullPointerException

  新しい入力メッセージウインドウを作成します.

  パラメータ:
    `x` - ウインドウのX座標を指定します。
    `y` - ウインドウのY標を指定します。
    `width` - ウインドウの幅指定します。
    `height` - ウインドウの高さを指定します。
    `windowModel` - メッセージウインドウのモデルを指定します。
    `messageLabelModel` - 質問文と入力確認ラベルのモデルを指定します。
    `choicesLabelModel` - 選択肢とコマンドラベルのモデルを指定します。
    `message` - 質問文です。改行"\n"を使用して複数行にできます。
    `choiceEffect` - 選択肢の選択エフェクトを指定します。
    `maxLength` - 入力可能な最大の文字数を指定します。
    `useCommandLabels` - コマンドラベルを使用する場合はtrue、使用しない場合はfalseを送信します。
    `charSet` - 使用する文字セットを1つ以上送信します。
  例外:
    `java.lang.IllegalArgumentException` - charSetかmessageがnullの場合に投げられます。
    `java.lang.NullPointerException` - 文字セットが0個であるか、最大の文字数が0未満である場合に投げられます。

メソッドの詳細

### initLabels

    private void initLabels(boolean useCommand)

  質問文、入力確認、選択肢の各ラベルを初期化して配置します.

  パラメータ:
    `useCommand` - コマンドラベルを使用する場合にtrueを送信します。

### initCommandLabels

    private void initCommandLabels()

  コマンドラベルを使用する場合に、座標などの初期化を行うメソッドです. コマンドラベルは選択肢の配列にも追加されます。コマンドラベルの配列と選択肢の配列に含まれる コマンドラベルのインスタンスは同じです。
  このメソッドはinitLabelsからコールされます。

### searchCharSet

    private CharSet searchCharSet(char c)
                           throws java.lang.AssertionError

  このウインドウが使用している文字セットの中から文字cが含まれる文字セットを検索します.

  パラメータ:
    `c` - 検索する文字を指定します。
  戻り値:
    文字cが最初に発見された文字セットを返します。
  例外:
    `java.lang.AssertionError` - 文字が含まれていない場合に投げられます。通常の使用方法ではこの例外が投げられることはありません。

### draw

    public void draw(java.awt.Graphics2D g)

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

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

### drawCaret

    private void drawCaret(java.awt.Graphics2D g)

  キャレットを描画します.

  パラメータ:
    `g` - 書き込むグラフィックスコンテキストを送信します。

### isCommandSelect

    public boolean isCommandSelect()

  コマンドラベルを選択中であるかを調べます.

  戻り値:
    コマンドラベルを使用しており、決定かキャンセルのコマンドを選択している場合にtrueを返します。

### isOkSelected

    public boolean isOkSelected()

  決定コマンドを選択中であるかを調べます.

  戻り値:
    コマンドラベルを使用しており、選択されているラベルが決定ラベルである場合にtrueを返します。

### isCancelSelected

    public boolean isCancelSelected()

  キャンセルコマンドを選択中であるかを調べます.

  戻り値:
    コマンドラベルを使用しており、選択されているラベルがキャンセルラベルである場合にtrueを返します。

### enter

    public java.lang.String enter()

  選択中の文字を入力し、1文字追加します. 入力が最大文字数である場合は何も行いません。

  戻り値:
    入力が確定している文字列を返します。今回の呼び出しまでに入力された 文字列を連結したもので、この呼び出しによって新しく追加された文字を含みます。

### backSpace

    public void backSpace()

  直前の入力をキャンセルし、1文字削除します. 入力が0文字である場合は何も行いません。

### ok

    public java.lang.String ok()

  入力を確定し、ウインドウを閉じます. このメソッドを呼び出すとウインドウの生存状態と可視状態をfalseにした後、 getInputTextを返します。

  戻り値:
    入力された文字列を返します。

### cancel

    public void cancel()

  入力をキャンセルし、ウインドウを閉じます. このメソッドを呼び出すと入力確認ラベルのテキストが空(最大文字数分の"＿")になり、 ウインドウの生存状態と可視状態をfalseに設定します。

### isMaxInput

    public boolean isMaxInput()

  プレイヤーによる現在の入力値が最大の文字数であるかを検査します.

  戻り値:
    プレイヤーの入力が最大の文字数である場合はtrueを、そうでない場合はfalseを返します。

### isNotYetInput

    public boolean isNotYetInput()

  プレイヤーによる現在の入力値が0文字であるかを検査します.

  戻り値:
    プレイヤーが入力していない場合はtrueを、1文字以上入力している場合はfalseを返します。

### toLeft

    public void toLeft()

  選択を左に移動します. 左に選択肢がない場合(最も左の選択肢の場合)は移動しません。

### toRight

    public void toRight()

  選択を右に移動します. 右に選択肢がない場合(最も右の選択肢の場合)は移動しません。

### toDown

    public void toDown()

  選択を下に移動します. 下に選択肢がない場合(最も下の選択肢の場合)は移動しません。

### toUp

    public void toUp()

  選択を上に移動します. 上に選択肢がない場合(最も上の選択肢の場合)は移動しません。

### clamp

    private void clamp()

  選択中ラベルインデックスを有効範囲内に切り詰めます.

### setCaretBlinkRate

    public void setCaretBlinkRate(TimeCounter cursorBlink)

  キャレットの点滅間隔を設定します.

  パラメータ:
    `cursorBlink` - 新しいキャレットの点滅間隔を指定します。

### getCaretBlinkRate

    public TimeCounter getCaretBlinkRate()

  キャレットの点滅間隔を取得します.

  戻り値:
    キャレットの点熱間隔に使用されてるタイムカウンタを返します。

### getCaretColor

    public java.awt.Color getCaretColor()

  キャレットの色を取得します.

  戻り値:
    このウインドウのキャレットの色を取得します。デフォルトでは透過度50%の白をです。

### setCaretColor

    public void setCaretColor(java.awt.Color caretColor)

  キャレットの色を変更します.

  パラメータ:
    `caretColor` - 新しいキャレットの色を設定します。

### getMaxLength

    public int getMaxLength()

  入力可能な最大の文字数を取得します.

  戻り値:
    プレイヤーがこのウインドウに入力できる文字数の最大値を返します。

### getSelectedLabel

    public TextLabel getSelectedLabel()

  現在選択されているラベルを返します。

  戻り値:
    現在選択されているラベルのクローンを返します。

### getSelectedLabelText

    public java.lang.String getSelectedLabelText()

  選択中のラベルのテキストを取得します.

  戻り値:
    選択中のラベルのテキストを返します。getSelectedLabel().getText()と同じ結果です。

### getSelectedIndexX

    public int getSelectedIndexX()

  選択中ラベルのY軸のインデックスを取得します.

  戻り値:
    選択エフェクトが適用されるラベルのX軸のインデックスを返します。

### setSelectedIndexX

    public void setSelectedIndexX(int selectedIndexX)

  選択中ラベルのX軸のインデックスを設定します.

  パラメータ:
    `selectedIndexX` - 選択エフェクトが適用されるラベルのX軸のインデックスを送信します。

### getSelectedIndexY

    public int getSelectedIndexY()

  選択中ラベルのY軸のインデックスを取得します.

  戻り値:
    選択エフェクトが適用されるラベルのY軸のインデックスを返します。

### setSelectedIndexY

    public void setSelectedIndexY(int selectedIndexY)

  選択中ラベルのY軸のインデックスを設定します.

  パラメータ:
    `selectedIndexY` - 選択エフェクトが適用されるラベルのY軸のインデックスを送信します。

### getCharSets

    public CharSet[] getCharSets()

  このウインドウに表示されている全ての文字セットを取得します. このメソッドは参照を戻します。戻り値に対する操作はウインドウに影響を与えます。

  戻り値:
    このウインドウが使用中の全ての文字セットを返します。

### getChoiceLabelsList

    public java.util.List<TextLabel> getChoiceLabelsList()

  選択肢として表示されているすべてのラベルをリストとして取得します. このメソッドの戻り値には操作性のために確保されているスペース" "のラベルや コマンドラベルが含まれます。
  このメソッドは参照を戻します。戻り値に対する操作はこのウインドウの選択肢ラベルに影響します。

  戻り値:
    全ての選択肢をリストとして返します。

### getChoiceLabels

    public TextLabel[][] getChoiceLabels()

  選択肢として表示されているすべてのラベルをその配置の2次元配列として取得します. このメソッドの戻り値には操作性のために確保されているスペース" "のラベルや コマンドラベルが含まれます。
  このメソッドは参照を戻します。戻り値に対する操作はこのウインドウの選択肢ラベルに影響します。

  戻り値:
    全ての選択肢を2次元配列として返します。

### getChoicesLabelModel

    public LabelModel getChoicesLabelModel()

  選択肢として表示されているラベルのモデルを取得します.

  戻り値:
    選択肢ラベルのモデルを返します。

### getChoiceEffect

    public ChoiceEffect getChoiceEffect()

  このウインドウの文字セットに対して使用されている選択エフェクトを取得します.

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

### setChoiceEffect

    public void setChoiceEffect(ChoiceEffect choiceEffect)

  このウインドウの文字セットに対して使用されている選択エフェクトを変更します.

  パラメータ:
    `choiceEffect` - 新しい選択エフェクトを指定します。表示しない場合はnullを使用できます。

### getInputValueLabel

    public TextLabel getInputValueLabel()

  プレイヤーが入力したテキストを表示するために使用されているラベルを取得します. このラベルはプレイヤーに入力可能な文字数を伝えるために未入力文字は"＿" に置換されています。
  純粋な入力された文字だけを取得するにはgetInputTextを使用します。

  戻り値:
    プレイヤーが入力したテキストを表示しているラベルを取得します。クローンを返します。

### getInputText

    public java.lang.String getInputText()

  プレイヤーによって入力された文字列を取得します. このメソッドでは、実際に表示されているラベルのテキストの "＿"を""に置換して返します。
  "＿"を含めた実際に表示されている文字列を取得するにはgetInputValueLabelを 使用します。

  戻り値:
    プレイヤーによって入力された文字列を取得します。

### printAll

    public void printAll(java.io.PrintStream stream)

  このウインドウに設定されているすべての文字セット用ラベルをストリームに発行します. このメソッドはデバッグ用です。

  パラメータ:
    `stream` - 発行するストリームを指定します。

### clone

    public InputMessageWindow clone()

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

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

### toString

    public java.lang.String toString()

  クラス `BasicSprite` の記述:
  スプライトの文字列表記を取得します. 文字列にはスプライトのフィールド情報が含まれています.これらの値はすべてアクセサを通して取得可能です.

  オーバーライド:
    クラス `BasicSprite` 内の `toString`
  戻り値:
    スプライトの情報.

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