2010-08-07 50 views
2

我想使用JTable编辑JTree,我扩展了DefaultTreeCellEditor并在getTreeCellEditorComponent中实现了isCellEditable getTreeCellEditorComponent,我返回一个JTable。当编辑节点时,一切正常,直到此时摆动显示充满对象内容的JTable,但编辑完成后,DefaultTreeModel的valueForPathChanged永远不会被调用。如果我使用文本字段进行编辑,这是默认的一切工作正常。使用JTable进行JTree单元编辑器

回答

1

JTextField具有notifyAction,命名为“通知场-接受”,并且通常结合至KeyEvent.VK_ENTER,可通知到CellEditorstopEditing()并最终调用方法DefaultTreeCellEditorvalueForPathChanged()

您不清楚如何指示您的JTable编辑已完成。您应该可以通过JTextFieldCellEditorListener中执行一些操作,该操作通过addCellEditorListener()添加到自定义编辑器中。

顺便提及,valueForPathChanged()提到“如果您在TreeModel中使用自定义用户对象,则需要对此类进行子类化,并将已更改节点的用户对象设置为有意义的内容。