Java プラットフォーム 1.2

javax.swing
インタフェース CellEditor

既知のサブインタフェースの一覧:
TableCellEditor, TreeCellEditor

public abstract interface CellEditor

すべての汎用エディタが実装可能であるべきメソッドを定義します。

このインタフェースによって、JList、JTree、および JTable などの複合的なコンポーネント (エディタのクライアント) は、テーブルセルやツリーセルなどの値の編集を任意の汎用エディタに許可できます。この汎用エディタのインタフェースがないと、JTable は JTextField、JCheckBox、JComboBox などの個々のエディタを認識している必要があります。また、このインタフェースがないと、JTable などのエディタのクライアントは、ユーザや Sun 以外の ISV(独立系ソフトウェアベンダー)によって今後開発されるエディタに対応できません。

このインタフェースを使うには、新しいエディタを作成する開発者は、その新しいコンポーネントにこのインタフェースを実装させます。または、ラッパーに基づくアプローチを選択し、CellEditor インタフェースを実装するコンパニオンオブジェクトを提供してもかまいません (例については、JCellEditor を参照)。ラッパーアプローチは、ユーザが JTable で Sun 以外の ISV(独立系ソフトウェアベンダー)のエディタを使う場合に、そのエディタが CellEditor インタフェースを実装していないときに特に便利です。ユーザは、Sun 以外の ISV によるエディタオブジェクトのインスタンスが格納されているオブジェクトを作成し、CellEditor API をそのエディタの API に変換するだけでオブジェクトを作成できます。

関連項目:
CellEditorListener

メソッドの概要
 void addCellEditorListener(CellEditorListener l)
          エディタが編集の開始、停止、または取り消しを行うときに通知を受けるリスナーをリストに追加します。
 void cancelCellEditing()
          編集を取り消して一部編集済みの値を受け付けないように、エディタに通知します。
 Object getCellEditorValue()
          エディタに保持された値を返します。
 boolean isCellEditable(EventObject anEvent)
          anEvent を使って編集を始められるかどうかをエディタに問い合わせます。
 void removeCellEditorListener(CellEditorListener l)
          通知を受けるリスナーをリストから削除します。
 boolean shouldSelectCell(EventObject anEvent)
          anEvent を使って編集を開始するようにエディタに通知します。
 boolean stopCellEditing()
          編集を停止して一部編集済みの値をエディタの値として受け付けるように、エディタに通知します。
 

メソッドの詳細

getCellEditorValue

public Object getCellEditorValue()
エディタに保持された値を返します。

isCellEditable

public boolean isCellEditable(EventObject anEvent)
anEvent を使って編集を始められるかどうかをエディタに問い合わせます。anEvent は呼び出し側コンポーネント座標系にあります。エディタは、getCellEditorComponent() によって返された Component がインストールされるとは想定できません。このメソッドは、編集が可能でない場合にエディタコンポーネントの設定とインストールの手間を避けるために、クライアントが使うことを目的としています。編集を開始できる場合、このメソッドは true を返します。
パラメータ:
anEvent - エディタが編集を始めるかどうかを検討するのに使うイベント
戻り値:
編集を開始できる場合は true
関連項目:
shouldSelectCell(java.util.EventObject)

shouldSelectCell

public boolean shouldSelectCell(EventObject anEvent)
anEvent を使って編集を開始するようにエディタに通知します。エディタが anEvent の正確な種類に基づいてさまざまな状態で編集を始めることを望むかどうかは、そのエディタによって異なります。たとえば、テキストフィールドエディタでは、イベントがマウスイベントの場合、エディタはクリックされた場所のカーソルを使って編集を始めます。イベントがキーボードイベントであれば、テキストフィールドの値をその最初のキーなどで置き換えようとする場合があります。anEvent は呼び出し側コンポーネントの座標系にあります。null 値は anEvent の有効なパラメータで、デフォルトの開始状態にしますが、意味はエディタによって異なります。たとえば、テキストフィールドエディタはテキストをすべて選択し、anEvent が null の場合に編集を始めようとします。エディタは、このメソッドが呼び出される前に、getCellEditorComponent() が返した Component がクライアント Component 階層で適切にインストールされると想定できます。

shouldSelectCell() の戻り値は、編集セルを選択するかどうかを示す boolean 型です。編集セルはほとんどの場合に選択されるので、通常は戻り値は true です。ただし、選択領域を特定の種類の編集による変更から保護するには false を返すとよいでしょう。たとえば、チェックボックスの列を保持するテーブルでは、ユーザは選択領域の変更なしにそれらのチェックボックスを変更できることを望む場合があります (このような例については、Netscape Communicator を参照)。戻り値を使うかどうかはエディタのクライアント次第ですが、その必要がなければ使わなくてもかまいません。

パラメータ:
anEvent - エディタが編集を始めるために使うイベント
戻り値:
編集セルを選択するようにエディタが望む場合は true
関連項目:
isCellEditable(java.util.EventObject)

stopCellEditing

public boolean stopCellEditing()
編集を停止して一部編集済みの値をエディタの値として受け付けるように、エディタに通知します。編集が停止されなかった場合、エディタは false を返します。これは、エントリの検証を行なって、それが無効であれば受け付けることができないエディタに有効です。
戻り値:
編集が停止された場合は true

cancelCellEditing

public void cancelCellEditing()
編集を取り消して一部編集済みの値を受け付けないように、エディタに通知します。

addCellEditorListener

public void addCellEditorListener(CellEditorListener l)
エディタが編集の開始、停止、または取り消しを行うときに通知を受けるリスナーをリストに追加します。
パラメータ:
l - CellEditorListener

removeCellEditorListener

public void removeCellEditorListener(CellEditorListener l)
通知を受けるリスナーをリストから削除します。
パラメータ:
l - CellEditorListener

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.