禁用3-Click Treenode的编辑,但保留键盘键进行编辑,以便在编辑之前保存节点的旧名称

时间:2014-01-15 13:17:27

标签: java swing jtree

我希望能够仅使用 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并保持名称。那有意义吗?有什么想法吗?

1 个答案:

答案 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