2

我想使用 JTable 来编辑 JTree,我扩展了 DefaultTreeCellEditor 并实现了 isCellEditable getTreeCellEditorComponent,在 getTreeCellEditorComponent 中我返回了一个 JTable。到目前为止,当编辑节点时,一切都正常运行,显示填充了对象内容的 JTable,但是当编辑完成时,DefaultTreeModel 的 valueForPathChanged 永远不会被调用。如果我使用默认的文本字段进行编辑,则一切正常。

4

1 回答 1

2

JTextField有一个notifyAction名为“notify-field-accept”的 ,通常绑定到,KeyEvent.VK_ENTER它发出信号并最终调用方法,。CellEditorstopEditing()DefaultTreeCellEditorvalueForPathChanged()

目前尚不清楚您如何指示您的JTable. 您应该能够对通过添加到自定义编辑器的JTextFieldin执行类似的操作。CellEditorListeneraddCellEditorListener()

顺便提一下,valueForPathChanged()“如果您在 TreeModel 中使用自定义用户对象,您将需要对其进行子类化并将更改节点的用户对象设置为有意义的东西。”

于 2010-08-08T14:53:18.483 回答