我希望能够仅使用 F2 和 ENTER 键来编辑节点名,而不是鼠标。我添加了这两行,他们正在工作:
jTree1.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "startEditing");
jTree1.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0), "startEditing");
但是如何禁用鼠标编辑?有没有像jTree1.setToggleClickCount(2);
我想要这样做的原因是我想保留节点的旧名称,所以我将创建一个keylistener来监听F2和ENTER并保持名称。那有意义吗?有什么想法吗?
答案 0 :(得分:2)
您可以在TreeCellEditor
的帮助下使用鼠标禁用编辑,请尝试下一个代码:
DefaultTreeCellEditor editor = new DefaultTreeCellEditor(t, (DefaultTreeCellRenderer) t.getCellRenderer()){
@Override
public boolean isCellEditable(EventObject event) {
if(event instanceof MouseEvent){
return false;
}
return super.isCellEditable(event);
}
};
该编辑器阻止使用MouseEvent
进行编辑。
将该编辑器设置为JTree
下一行:tree.setCellEditor(editor);
其中tree
是您的JTree
。