2

JTree の編集に JTable を使用したいと思います。DefaultTreeCellEditor を拡張し、isCellEditable getTreeCellEditorComponent を実装しました。getTreeCellEditorComponent で JTable を返します。ノードが編集されると、この時点まですべてが機能し、オブジェクトのコンテンツで満たされた JTable が表示されますが、編集が完了すると、DefaultTreeModel の valueForPathChanged は呼び出されません。デフォルトである編集用のテキストフィールドを使用すると、すべて正常に動作します。

4

1 に答える 1

2

JTextFieldnotifyAction「notify-field-accept」という名前の があり、通常は にバインドされています。これは にKeyEvent.VK_ENTERシグナルを送り、CellEditor最終stopEditing()的にDefaultTreeCellEditorメソッド を呼び出しますvalueForPathChanged()

の編集が完了したことをどのように示すかは明確ではありませんJTable。経由でカスタム エディタに追加されJTextFieldた で同様のことができるはずです。CellEditorListeneraddCellEditorListener()

ちなみに、valueForPathChanged()「TreeModel でカスタム ユーザー オブジェクトを使用する場合は、これをサブクラス化し、変更されたノードのユーザー オブジェクトを意味のあるものに設定する必要があります」と述べています。

于 2010-08-08T14:53:18.483 に答える