在自定义TreeCellEditor中保存JComboBox的值

时间:2012-03-02 11:26:06

标签: java swing jtree

我有JTree个自定义TreeModel和自定义TreeCellEditor通过JComboBox覆盖显示(目前)getTreeCellEditorComponent()。树正确显示,节点进入编辑模式,当我点击它们时显示JComboBox

每当我编辑一个节点,从下拉列表中更改值,然后继续从三个节点中选择另一个节点时,我可以看到TreeCellEditor的{​​{1}}被触发。

停止编辑的“正确”方法是什么,而不是取消它?因此(希望?)确保模型的cancelCellEditing()被触发?

1 个答案:

答案 0 :(得分:2)

在源代码中进一步调查后,我在JTree类中找到了答案:

设置JTree#setInvokesStopCellEditing(true)表示每当我将焦点从一个节点更改为另一个节点时,编辑停止而不是取消。这也意味着我的TreeModel#valueForPathChanged()被调用。

相关问题