JavaTM Platform
Standard Ed. 6

java.beans
インタフェース PropertyEditor

既知の実装クラスの一覧:
PropertyEditorSupport

public interface PropertyEditor

PropertyEditor クラスは、ユーザーが指定の型のプロパティー値を編集するための GUI のサポートを提供します。

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 コンストラクタを持たなければいけません。


メソッドの概要
 void addPropertyChangeListener(PropertyChangeListener listener)
          PropertyChange イベントのリスナーを登録します。
 String getAsText()
          プロパティーの値をテキストとして取得します。
 Component getCustomEditor()
          PropertyEditor は、プロパティー値を編集する完全なカスタムコンポーネントを提供することができます。
 String getJavaInitializationString()
          エディタの現在の状態に一致するようにプロパティーを設定するために使える Java コードのフラグメントを返します。
 String[] getTags()
          プロパティー値が既知のタグ付きの値セットの 1 つでなければならない場合に、タグの配列を返します。
 Object getValue()
          プロパティーの値を取得します。
 boolean isPaintable()
          このプロパティーエディタがペイント可能かどうかを判定します。
 void paintValue(Graphics gfx, Rectangle box)
          値の表現を画面の指定された領域に描画します。
 void removePropertyChangeListener(PropertyChangeListener listener)
          PropertyChange イベントのリスナーを削除します。
 void setAsText(String text)
          指定された String (文字列) を解析してプロパティー値を設定します。
 void setValue(Object value)
          編集するオブジェクトを設定または変更します。
 boolean supportsCustomEditor()
          このプロパティーエディタがカスタムエディタをサポートするかどうかを判定します。
 

メソッドの詳細

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

void paintValue(Graphics gfx,
                Rectangle box)
値の表現を画面の指定された領域に描画します。propertyEditor は、独自のクリッピングを行い、指定された矩形内に収めます。

PropertyEditor が描画要求を受け取らない場合 (isPaintable を参照)、このメソッドは何も行いません。

指定された Graphics オブジェクトは、親コンテナのデフォルトのフォントや色などを持つことになります。PropertyEditor は、フォントや色などのグラフィックス属性を変更することがあり、古い値を復元する必要はありません。

パラメータ:
gfx - 描画されるグラフィックオブジェクト
box - グラフィックオブジェクトを描画する矩形

getJavaInitializationString

String getJavaInitializationString()
エディタの現在の状態に一致するようにプロパティーを設定するために使える Java コードのフラグメントを返します。Java コードを生成して、プロパティーエディタで行った変更を反映するときに使います。

コードのフラグメントは、コンテキストに依存すべきでなく、JLS で指定された正規の Java 式である必要があります。

特に式が計算を表す場合は、すべてのクラスと静的メンバーを完全指定するようにしてください。この規則はコンストラクタ、static メソッド、および非プリミティブ引数に適用されます。

式を評価するときには、その式が例外をスローする可能性があるため注意が必要です。特にコードジェネレータは、確認済み例外をスローする可能性のある式が存在するときに、生成されたコードが確実にコンパイルされるようにする必要があります。

たとえば次のような結果になります。

戻り値:
現在値の初期化子を表す 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)
PropertyChange イベントのリスナーを登録します。PropertyEditor は、値の変更時にプロパティー名を null 値として、イベント自体をソースとして指定し、登録されているすべての PropertyChangeListeners 上で PropertyChange イベントをトリガーします。

パラメータ:
listener - PropertyChange イベントがトリガーされたときに呼び出されるオブジェクト

removePropertyChangeListener

void removePropertyChangeListener(PropertyChangeListener listener)
PropertyChange イベントのリスナーを削除します。

パラメータ:
listener - 削除される PropertyChange リスナー

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。