- 既知のすべての実装クラス:
PropertyEditorSupport
PropertyEditorは、プロパティ値の表示や更新についてさまざまな方法をサポートします。 大部分のPropertyEditorでは、このAPIで使える各種オプションのサブセットをサポートするだけで十分です。
単純なPropertyEditorsがサポートするのはgetAsTextとsetAsTextメソッドだけで、paintValueやgetCustomEditorなどのサポートは不要です。 より複雑なものでは、getAsTextやsetAsTextはサポートできませんが、代わりにpaintValueとgetCustomEditorをサポートします。
各propertyEditorは、次の3つの表示スタイルのうち1つ以上を必ずサポートする必要があります。 つまり、(1) isPaintableのサポート、(2) getTags()からnullでないString[]を返し、かつgetAsTextからnullでない値を返す、または(3)単にgetAsText()からnullでないStringを返す、の3つです。
各プロパティ・エディタは、引数オブジェクトが対応するpropertyEditorの型である場合に、setValueの呼出しをサポートする必要があります。 さらに各プロパティ・エディタは、カスタム・エディタまたはsetAsTextのどちらかをサポートする必要があります。
各PropertyEditorは、nullコンストラクタを持たなければいけません。
- 導入されたバージョン:
- 1.1
-
メソッドのサマリー
修飾子と型メソッド説明void
値変更のリスナーを追加します。プロパティの値をテキストとして取得します。PropertyEditorは、プロパティ値を編集する完全なカスタム・コンポーネントを提供することができます。エディタの現在の状態に一致するようにプロパティを設定するために使えるJavaコードのフラグメントを返します。String[]
getTags()
プロパティ値が既知のタグ付きの値セットの1つでなければならない場合に、タグの配列を返します。getValue()
プロパティの値を取得します。boolean
このプロパティ・エディタがペイント可能かどうかを判定します。void
paintValue
(Graphics gfx, Rectangle box) 値の表現を画面の指定された領域に描画します。void
値変更のリスナーを削除します。void
指定されたString (文字列)を解析してプロパティ値を設定します。void
編集するオブジェクトを設定または変更します。boolean
このプロパティ・エディタがカスタム・エディタをサポートするかどうかを判定します。
-
メソッドの詳細
-
setValue
void setValue(Object value) 編集するオブジェクトを設定または変更します。 intなどのプリミティブ型は、対応するオブジェクト型(java.lang.Integerなど)としてラップされる必要があります。- パラメータ:
value
- 編集対象の新しいターゲット・オブジェクト。 このオブジェクトはPropertyEditorで変更するのではなく、PropertyEditorで新しいオブジェクトを作成して変更された値を保存する。
-
getValue
Object getValue()プロパティの値を取得します。- 戻り値:
- プロパティの値 intなどのプリミティブ型は、対応するオブジェクト型(java.lang.Integerなど)としてラップされる。
-
isPaintable
boolean isPaintable()このプロパティ・エディタがペイント可能かどうかを判定します。- 戻り値:
- クラスがpaintValueメソッドを受け取る場合はtrue。
-
paintValue
値の表現を画面の指定された領域に描画します。 propertyEditorは、独自のクリッピングを行い、指定された矩形内に収めます。PropertyEditorが描画要求を受け取らない場合(isPaintableを参照)、このメソッドは何も行いません。
指定されたGraphicsオブジェクトは、親コンテナのデフォルトのフォントや色などを持つことになります。 PropertyEditorは、フォントや色などのグラフィックス属性を変更することがあり、古い値を復元する必要はありません。
- パラメータ:
gfx
- 描画するグラフィックス・オブジェクト。box
- 描画するべきグラフィックス・オブジェクト内の矩形。
-
getJavaInitializationString
String getJavaInitializationString()エディタの現在の状態に一致するようにプロパティを設定するために使えるJavaコードのフラグメントを返します。 Javaコードを生成して、プロパティ・エディタで行った変更を反映するときに使います。コードのフラグメントは、コンテキストに依存すべきでなく、JLSで指定された正規のJava式である必要があります。
特に式が計算を表す場合は、すべてのクラスと静的メンバーを完全指定するようにしてください。 このルールはコンストラクタ、staticメソッド、および非プリミティブ引数に適用されます。
式を評価するときには、その式が例外をスローする可能性があるため注意が必要です。 特にコード・ジェネレータは、チェック例外をスローする可能性のある式が存在するときに、生成されたコードが確実にコンパイルされるようにする必要があります。
たとえば次のような結果になります。
- プリミティブ式:
2
- クラス・コンストラクタ:
new java.awt.Color(127,127,34)
- staticフィールド:
java.awt.Color.orange
- staticメソッド:
javax.swing.Box.createRigidArea(new java.awt.Dimension(0, 5))
- 戻り値:
- 現在値の初期化子を表すJavaコードのフラグメント。 セミコロン('
;
')で式を終わらせないこと。
- プリミティブ式:
-
getAsText
String getAsText()プロパティの値をテキストとして取得します。- 戻り値:
- ユーザーが編集できる文字列で表現されたプロパティ値。
編集可能な文字列として値を表現できない場合はnull。
null以外の値が返されると、PropertyEditorはその文字列を解析してsetAsText()に戻す。
-
setAsText
void setAsText(String text) throws IllegalArgumentException 指定されたString (文字列)を解析してプロパティ値を設定します。 Stringの書式が不正な場合、あるいはプロパティをテキスト表示できない場合は、java.lang.IllegalArgumentExceptionがスローされます。- パラメータ:
text
- 解析される文字列。- 例外:
IllegalArgumentException
-
getTags
String[] getTags()プロパティ値が既知のタグ付きの値セットの1つでなければならない場合に、タグの配列を返します。 たとえば、これを使って列挙値を表示できます。 PropertyEditorがタグをサポートする場合、値を設定する方法として、タグ付きの値を持つsetAsTextを使ったり、現在の値を識別するためにgetAsTextを使ったりすることができます。- 戻り値:
- このプロパティのタグ付きの値。 このプロパティをタグ付きの値として表示できない場合はnull。
-
getCustomEditor
Component getCustomEditor()PropertyEditorは、プロパティ値を編集する完全なカスタム・コンポーネントを提供することができます。 PropertyEditorは、エディタのコンポーネントと連携し、PropertyChangeイベントをトリガーしてプロパティ値の変更を通知します。getCustomEditorを呼び出す高レベルなコードでは、コンポーネントをより大きなプロパティ・シートに組み込んだり、独自のダイアログに配置したりすることができます。
- 戻り値:
- ユーザーが現在のプロパティ値を直接編集できるようにするjava.awt.Component。 サポートされない場合はnull。
-
supportsCustomEditor
boolean supportsCustomEditor()このプロパティ・エディタがカスタム・エディタをサポートするかどうかを判定します。- 戻り値:
- propertyEditorがカスタム・エディタをサポートできる場合はtrue。
-
addPropertyChangeListener
void addPropertyChangeListener(PropertyChangeListener listener) 値変更のリスナーを追加します。 プロパティ・エディタが値を変更する場合は、ソースとしてプロパティ名とそれ自体にnull
値を指定して、登録されているすべてのPropertyChangeListener
に対してPropertyChangeEvent
をトリガーする必要があります。- パラメータ:
listener
- 追加するPropertyChangeListener
-
removePropertyChangeListener
void removePropertyChangeListener(PropertyChangeListener listener) 値変更のリスナーを削除します。- パラメータ:
listener
- 削除するPropertyChangeListener
-