public static final class TextFormatter.Change extends Object implements Cloneable
formatter
にこのオブジェクトが渡されます。
このクラスには、コントロールに対してどのような変更が行われたかを判別するための状態メソッドとコンビニエンス・メソッドが含まれます。また、開発者がコントロールのその他の状態を問合せできるように、TextInputControlそのものへの参照も含まれています。コントロールの状態をformatter handler内部から直接変更しないでください。
テキストのChangeは、range (getRangeStart()
, getRangeEnd()
) and text (getText()
によって記述されます。次の3つのケースが考えられます。
text
は空となり、range
は削除されたテキストの範囲
を示します。たとえば、"Lorem ipsum dolor sit amet"というテキストで2番目の語を削除すると、range
は(6,11)で、text
は空になります。同様に、別のテキストまたは追加のテキストを削除する場合は、range
を設定します。2番目の語ではなく最初の語を削除する場合は、setRange(0,5)
を呼び出しますrange
は空ですが(何も削除されていない)、その値はまだ重要です。range
の開始と終了はどちらも、新しいテキストが追加された索引を指します。たとえば、"Lorem dolor sit amet"に"ipsum"を追加すると、range
が(6,6)に変更され、text
に文字列"ipsum"が追加されます。text
とrange
はどちらも空ではありません。Changeではrange
のテキストが削除されてtext
で置換されます。古いテキストのかわりに新しいテキストがrange
の先頭に追加されます。たとえば、一部のテキストが削除する場合、新しいテキスト(setText("new text")
)を設定して、プレースホルダ・テキストでそれを置換するだけですChangeは変更可能ですが、監視可能ではありません。これは、1つの変更の存続期間のみ使用できます。Changeはフォーマッタ内部から変更することが意図されています。
修飾子と型 | メソッドと説明 |
---|---|
TextFormatter.Change |
clone() |
int |
getAnchor()
新しいアンカーを取得します。
|
int |
getCaretPosition()
新しいキャレット位置を取得します。
|
Control |
getControl()
この変更に関連付けられたコントロールを取得します。
|
int |
getControlAnchor()
コントロールの現在のアンカー位置を取得します。
|
int |
getControlCaretPosition()
コントロールの現在のキャレット位置を取得します。
|
String |
getControlNewText()
この変更後にコントロールで使用される新しいテキスト全部を取得します。
|
String |
getControlText()
これは変更前のコントロールの全文です。
|
int |
getRangeEnd()
変更のために
TextInputControl.getText() への終了索引を取得します。 |
int |
getRangeStart()
変更のために
TextInputControl.getText() への開始索引を取得します。 |
IndexRange |
getSelection()
この変更の選択を取得します。
|
String |
getText()
この変更で使用するテキストを取得します。
|
boolean |
isAdded()
この変更がテキストの追加に対応して行われたかどうかを取得します。
|
boolean |
isContentChange()
コンテンツの変更は、追加、削除または置換変更のいずれかです。
|
boolean |
isDeleted()
この変更がテキストの削除に対応して行われたかどうかを取得します。
|
boolean |
isReplaced()
この変更がテキストの置換に対応して行われたかどうかを取得します。
|
void |
selectRange(int newAnchor, int newCaretPosition)
選択範囲を設定します。
|
void |
setAnchor(int newAnchor)
アンカーを設定します。
|
void |
setCaretPosition(int newCaretPosition)
キャレット位置を設定します。
|
void |
setRange(int start, int end)
開始値と終了値が互いに有効になるように両者を一緒に割り当てるメソッド。
|
void |
setText(String value)
この変更で使用するテキストを設定します。
|
String |
toString() |
public final Control getControl()
public final int getRangeStart()
TextInputControl.getText()
への開始索引を取得します。これは常に、0より大きくTextInputControl.getLength()
以下の値になります。public final int getRangeEnd()
TextInputControl.getText()
への終了索引を取得します。これは常に、getRangeStart()
より大きくTextInputControl.getLength()
以下の値になります。public final void setRange(int start, int end)
start
- 新しい開始値。有効な開始値である必要がありますend
- 新しい終了値。有効な終了値である必要がありますpublic final int getCaretPosition()
getControlNewText()
.getLength()}以下である必要がありますpublic final int getAnchor()
getControlNewText()
.getLength()}以下である必要がありますpublic final int getControlCaretPosition()
public final int getControlAnchor()
public final void selectRange(int newAnchor, int newCaretPosition)
getControlNewText()
.getLength()}以下である必要があります。ここでは順序依存があり、新しいテキストの指定後に位置を指定する必要があります。newAnchor
- 新しいアンカー位置newCaretPosition
- 新しいキャレット位置public final IndexRange getSelection()
getControlNewText()
を参照することに注意してください。public final void setAnchor(int newAnchor)
getControlNewText()
.getLength()}以下である必要があります。ここでは順序依存があり、新しいテキストの指定後に位置を指定する必要があります。newAnchor
- 新しいアンカー位置public final void setCaretPosition(int newCaretPosition)
getControlNewText()
.getLength()}以下である必要があります。ここでは順序依存があり、新しいテキストの指定後に位置を指定する必要があります。newCaretPosition
- 新しいキャレット位置public final String getText()
public final void setText(String value)
value
- テキスト。nullを指定することはできません。public final String getControlText()
getControlNewText()
を使用します。public final String getControlNewText()
public final boolean isAdded()
public final boolean isDeleted()
public final boolean isReplaced()
public final boolean isContentChange()
c.isAdded() || c.isDeleted()
のショートカットです。public TextFormatter.Change clone()
Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.