|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectkinugasa.object.Sprite
kinugasa.object.BasicSprite
kinugasa.ui.MessageWindow
kinugasa.ui.InputMessageWindow
public class InputMessageWindow
Kinugasa : InputMessageWindow : 1つ以上の文字セットから文字列を自由に構築できる入力ウインドウです.
入力メッセージウインドウは指定された文字数までの文字列を、指定された文字セットから1文字ずつ自由に入力できる
ウインドウの実装です。
ウインドウから入力された文字列は1行のラベルとして表示可能です。
このウインドウには0行以上の「質問文」、1行の「入力確認ラベル」、いくつかの「文字セット」および、
使用する場合には「コマンドラベル」が表示されます。
質問文とはプレイヤーに何を入力してもらいたいのかを指示するラベルのことです。このラベルはスーパークラスの機能を使用して
作成、描画されます。このラベルは複数行表示することができるので、テキスト中に"\n"を使用することで
改行することができます。
入力確認ラベルとは入力を確定した文字がリアルタイムに表示されるラベルです。このラベルには
デフォルトで"_"が最大文字数分表示されており、文字列を取得する際にはこの"_"が""に置換されます。
したがって、入力文字として全角のアンダースコア"_"を使用することはできません。
文字セットとは入力可能な文字のセットです。これはCharSetクラスを使用して定義されます。
文字セットは、通常、操作性をよくするためにいくつかのスペース" "をセット中に含ませることがあります。
したがって、文字セット中の文字は必ずしも重複してはならないというルールはありません。
文字セットはフォントが提供する文字を自由に定義可能です。たとえば漢字や他の文字であっても
入力フォームを作成することができます。
このウインドウにはラベルのプリセットとしてコマンドというラベルを構築する機能が備わっています。
このラベルは、入力を確定したりキャンセルして戻る処理を判定するためのもので、使用する場合は
文字セットの下部に表示されます。
このウインドウの実装では、独自のラベル配置アルゴリズムを用いるため、スーパークラスに設定されるラベルは
「質問文」だけです。それ以外のすべてのラベルはこのクラスに独自に格納されます。
このウインドウは、通常2つ以上表示することはないと考えられるので、
クローニングはシャローコピーとなります。すべてのラベル情報はその参照がコピーされます。
入力メッセージウインドウは、入力された文字が挿入される位置を示すためのキャレットを持ちます。
キャレットは単色の矩形として入力確認ラベルの次に文字が挿入される位置に描画されます。
最大の文字数まで入力されている場合はキャレットは表示されません。
キャレットの色はデフォルトでは透過度50%の白が設定されています。
フィールドの概要 | |
---|---|
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 |
フィールドの詳細 |
---|
private static final long serialVersionUID
public static java.lang.String COMMAND_OK
public static java.lang.String COMMAND_CANCEL
private TextLabel[][] choiceLabels
private int maxLength
private LabelModel choicesLabelModel
private CharSet[] charSets
private ChoiceEffect choiceEffect
private int selectedIndexX
private int selectedIndexY
private TextLabel inputValueLabel
private int caretIndex
private TimeCounter caretBlinkRate
private float caretX
private float caretY
private java.awt.Color caretColor
private TextLabel[] commandLabels
コンストラクタの詳細 |
---|
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未満である場合に投げられます。メソッドの詳細 |
---|
private void initLabels(boolean useCommand)
useCommand
- コマンドラベルを使用する場合にtrueを送信します。private void initCommandLabels()
private CharSet searchCharSet(char c) throws java.lang.AssertionError
c
- 検索する文字を指定します。java.lang.AssertionError
- 文字が含まれていない場合に投げられます。通常の使用方法ではこの例外が投げられることはありません。public void draw(java.awt.Graphics2D g)
MessageWindow
の記述:
Drawable
内の draw
MessageWindow
内の draw
g
- 書き込むグラフィックスコンテキスト.private void drawCaret(java.awt.Graphics2D g)
g
- 書き込むグラフィックスコンテキストを送信します。public boolean isCommandSelect()
public boolean isOkSelected()
public boolean isCancelSelected()
public java.lang.String enter()
public void backSpace()
public java.lang.String ok()
public void cancel()
public boolean isMaxInput()
public boolean isNotYetInput()
public void toLeft()
public void toRight()
public void toDown()
public void toUp()
private void clamp()
public void setCaretBlinkRate(TimeCounter cursorBlink)
cursorBlink
- 新しいキャレットの点滅間隔を指定します。public TimeCounter getCaretBlinkRate()
public java.awt.Color getCaretColor()
public void setCaretColor(java.awt.Color caretColor)
caretColor
- 新しいキャレットの色を設定します。public int getMaxLength()
public TextLabel getSelectedLabel()
public java.lang.String getSelectedLabelText()
public int getSelectedIndexX()
public void setSelectedIndexX(int selectedIndexX)
selectedIndexX
- 選択エフェクトが適用されるラベルのX軸のインデックスを送信します。public int getSelectedIndexY()
public void setSelectedIndexY(int selectedIndexY)
selectedIndexY
- 選択エフェクトが適用されるラベルのY軸のインデックスを送信します。public CharSet[] getCharSets()
public java.util.List<TextLabel> getChoiceLabelsList()
public TextLabel[][] getChoiceLabels()
public LabelModel getChoicesLabelModel()
public ChoiceEffect getChoiceEffect()
public void setChoiceEffect(ChoiceEffect choiceEffect)
choiceEffect
- 新しい選択エフェクトを指定します。表示しない場合はnullを使用できます。public TextLabel getInputValueLabel()
public java.lang.String getInputText()
public void printAll(java.io.PrintStream stream)
stream
- 発行するストリームを指定します。public InputMessageWindow clone()
BasicSprite
の記述:
MessageWindow
内の clone
public java.lang.String toString()
BasicSprite
の記述:
BasicSprite
内の toString
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |