【发布时间】:2012-12-20 12:51:22
【问题描述】:
我有一个带有可编辑节点的 JTree。
如何以编程方式触发树单元格编辑事件,即调出节点重命名文本框来代替突出显示的节点,就像用户手动突出显示它并按下 F2 一样?
基本上,我想添加一个“重命名”菜单项或工具栏按钮,以提示用户了解树的特定功能,并且我希望它在用户突出显示节点时与 F2 键功能相同。
【问题讨论】:
标签: java swing editor rename jtree
我有一个带有可编辑节点的 JTree。
如何以编程方式触发树单元格编辑事件,即调出节点重命名文本框来代替突出显示的节点,就像用户手动突出显示它并按下 F2 一样?
基本上,我想添加一个“重命名”菜单项或工具栏按钮,以提示用户了解树的特定功能,并且我希望它在用户突出显示节点时与 F2 键功能相同。
【问题讨论】:
标签: java swing editor rename jtree
1) 选择某个节点(通过Mouse / KeyBoard 事件)并通过TreeSelectionListener 侦听,然后选择的路径具有唯一 ID
2)将Swing Action添加到JMenuItem(在JPopup???,从您的问题中不清楚,如何从/到获取节点???)
3) 创建类、虚空等并触发
SwingUtilities.invokeLater(new Runnable() {
public void run() {
tree.startEditingAtPath(path);
}
});
4) 基于@Michael Dunn 对我的question on another forum 的回答
【讨论】:
看到这个tutorial
为了使树节点中的文本可编辑,我们调用 树上的 setEditable(true)。当用户完成编辑 节点,模型生成一个树模型事件,告诉任何侦听器 - 包括 JTree - 树节点已更改。注意 虽然 DefaultMutableTreeNode 具有更改节点的方法 内容,更改应通过 DefaultTreeModel 覆盖方法。 否则,不会生成树模型事件,并且监听器 比如树不会知道更新。
编辑:
要为节点添加上下文菜单,请参阅此问题:Right-click context menu for Java JTree?。
【讨论】: