我有一个带可编辑节点的JTree。
如何以编程方式触发树状单元格编辑事件,即调出节点重命名文本框来代替突出显示的节点,就像用户手动突出显示它并按下F2一样?
基本上我想添加一个“重命名”菜单项或工具栏按钮,以便用户了解树的特定功能,并且我希望它在用户突出显示节点时与F2按键功能相同。
答案 0 :(得分:4)
1)选择某个节点(通过Mouse
/ KeyBoard
事件)并通过TreeSelectionListener
收听,然后选择的路径具有唯一ID
2)将Swing Action
添加到JMenuItem
(在JPopup
中???,从您的问题中不清楚,如何从/到达节点?)
3)创建课程,无效,无论如何以及开火
SwingUtilities.invokeLater(new Runnable() {
public void run() {
tree.startEditingAtPath(path);
}
});
的回答
答案 1 :(得分:1)
请参阅此tutorial
为了使树的节点中的文本可编辑,我们调用 树上的setEditable(true)。用户完成编辑后 节点,模型生成一个树模型事件,告诉任何侦听器 - 包括JTree - 树节点已更改。注意 虽然DefaultMutableTreeNode具有更改节点的方法 内容,更改应该通过DefaultTreeModel覆盖方法。 否则,将不会生成树模型事件和侦听器 例如,树不知道更新。
编辑:
要为节点添加上下文菜单,请参阅此问题:Right-click context menu for Java JTree?。