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

2024-03-17

我希望能够编辑节点名F2 and ENTER只能用按键,不能用鼠标。我添加了这两行,它们正在工作:

jTree1.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "startEditing");
jTree1.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0), "startEditing");

但是如何禁用鼠标编辑呢?有没有类似的方法:jTree1.setToggleClickCount(2);

我想要这样做的原因是我想保留节点的旧名称,因此我将创建一个按键侦听器来侦听 F2 和 ENTER 并保持这种名称。那有意义吗?有什么想法吗?


您可以借助以下命令禁用鼠标编辑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);

where tree是你的JTree.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禁用 JTree 节点的三键编辑,但保留键盘键进行编辑,以便在编辑之前保存节点的旧名称 的相关文章

随机推荐