swing - 触发树单元格编辑事件

时间:2013-01-06 17:57:39

标签: java swing editor rename jtree

我有一个带可编辑节点的JTree。

如何以编程方式触发树状单元格编辑事件,即调出节点重命名文本框来代替突出显示的节点,就像用户手动突出显示它并按下F2一样?

基本上我想添加一个“重命名”菜单项或工具栏按钮,以便用户了解树的特定功能,并且我希望它在用户突出显示节点时与F2按键功能相同。

2 个答案:

答案 0 :(得分:4)

1)选择某个节点(通过Mouse / KeyBoard事件)并通过TreeSelectionListener收听,然后选择的路径具有唯一ID

2)将Swing Action添加到JMenuItem(在JPopup中???,从您的问题中不清楚,如何从/到达节点?)

3)创建课程,无效,无论如何以及开火

SwingUtilities.invokeLater(new Runnable() {  
    public void run() {  
        tree.startEditingAtPath(path);  
    }  
});

4)基于@Michael Dunnquestion on another forum

的回答

答案 1 :(得分:1)

请参阅此tutorial

  

为了使树的节点中的文本可编辑,我们调用   树上的setEditable(true)。用户完成编辑后   节点,模型生成一个树模型事件,告诉任何侦听器    - 包括JTree - 树节点已更改。注意   虽然DefaultMutableTreeNode具有更改节点的方法   内容,更改应该通过DefaultTreeModel覆盖方法。   否则,将不会生成树模型事件和侦听器   例如,树不知道更新。

编辑:

要为节点添加上下文菜单,请参阅此问题:Right-click context menu for Java JTree?