java - 禁用/覆盖 JTree 鼠标按下/单击处理的正确方法

标签 java swing mouseevent jtree key-bindings

我需要可编辑的JTree,但编辑应该通过双击节点或按 F2 来开始,而不是像默认设置那样仅按鼠标/单击节点。

禁用 JTree(或任何其他类似组件,例如 JTable)上的鼠标按下或单击鼠标处理但保留选择处理的最佳方法是什么?

我有开始编辑的代码,我只需要关闭 JTree 即可开始使用其他事件进行编辑。

最佳答案

据我了解,您需要管理JTree的编辑器,这是一个简单的示例:

    JTree t = new JTree();
    t.setEditable(true);
    TreeCellRenderer cellRenderer = t.getCellRenderer();
    DefaultTreeCellEditor cellEditor = new DefaultTreeCellEditor(t, (DefaultTreeCellRenderer) cellRenderer){
        @Override
        public boolean isCellEditable(EventObject arg0) {
            if(arg0 instanceof MouseEvent){
                return ((MouseEvent)arg0).getClickCount() > 2;
            }
            return super.isCellEditable(arg0);
        }
    };
    t.setCellEditor(cellEditor);

检查DefaultTreeCellEditor它是方法 isCellEditable(EventObject arg0)

关于java - 禁用/覆盖 JTree 鼠标按下/单击处理的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19952012/

相关文章:

java - 什么是初始化 block ?

objective-c - SpriteKit MouseMoved 不工作

c# - WPF: slider 不会提升 MouseLeftButtonDown 或 MouseLeftButtonUp

java - 如何按 id 对 ArrayList 进行排序并添加到 ArrayList ArrayList<ArrayList<DataPost>>

java - 创建不同的 GUI 显示对象并使用 CardLayout 在它们之间切换的最佳方法是什么? ( java )

java - 将字符串置于自定义组件的中心

java - 如何使用for语句java打开另一个程序?

javascript - 关闭 mouseoff 和 mouseup 的功能

java - 将 Mockito 返回设置为除特定值之外的任意整数

java - 更改 gui 中的面板