使用JTable进行JTree单元编辑器

时间:2010-08-07 22:03:52

标签: java swing jtable jtree

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

1 个答案:

答案 0 :(得分:1)

JTextFieldnotifyAction,名为“notify-field-accept”,通常绑定到KeyEvent.VK_ENTER,表示CellEditorstopEditing()并最终调用DefaultTreeCellEditor方法valueForPathChanged()

目前尚不清楚如何表明您的JTable编辑已完成。您应该可以通过CellEditorListener在自定义编辑器中添加addCellEditorListener() JTextField之类的内容。

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