5

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

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

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

4

2 回答 2

4

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

2)添加Swing ActionJMenuItem(在JPopup???中,从您的问题中不清楚,如何从/到获取节点???)

3)创建类,虚空,任何东西并开火

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

4)基于对@Michael Dunn在另一个论坛上的问题的回答

于 2013-01-06T20:35:26.017 回答
1

看这个教程

为了使树节点中的文本可编辑,我们在树上调用 setEditable(true)。当用户完成对节点的编辑时,模型会生成一个树模型事件,告诉任何侦听器(包括 JTree)树节点已更改。请注意,尽管 DefaultMutableTreeNode 具有更改节点内容的方法,但更改应通过 DefaultTreeModel 覆盖方法。否则,不会生成树模型事件,并且诸如树之类的侦听器将不知道更新。

编辑:

要为节点添加上下文菜单,请参阅以下问题:Java JTree 的右键单击上下文菜单?.

于 2013-01-06T19:13:19.113 回答