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

Java 为JTree禁用/覆盖鼠标按下/单击处理的正确方法,java,swing,mouseevent,jtree,key-bindings,Java,Swing,Mouseevent,Jtree,Key Bindings,我需要有可编辑的JTree,但编辑应该通过双击节点或按F2键来开始,而不是按鼠标/单击节点,因为默认情况下是这样设置的 禁用对JTree(或任何其他类似组件,例如JTable)的鼠标按下或单次鼠标单击处理,但保留选择处理的最佳方法是什么 我有开始编辑的代码,我只需要关闭JTree开始编辑其他事件。据我所知,您需要管理JTree的编辑器,下面是一个简单的示例: JTree t = new JTree(); t.setEditable(true); TreeCellRende

我需要有可编辑的
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);

检查它的方法
isCellEditable(eventobjectarg0)

据我所知,您需要管理
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);

检查它的方法
isCellEditable(eventobjectarg0)

据我所知,您需要管理
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);

检查它的方法
isCellEditable(eventobjectarg0)

据我所知,您需要管理
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);

通过双击节点展开,检查它的方法
isCellEditable(eventobjectarg0)

作为默认值。查看TreeSelectionModel。如果我在你的位置上,我会这么做。默认情况下,双击节点会展开。看看TreeSelectionModel。如果我在你的位置上,我会这么做。默认情况下,双击节点会展开。看看TreeSelectionModel。如果我在你的位置上,我会这么做。默认情况下,双击节点会展开。看看TreeSelectionModel。如果我处在你的位置,我会这么做。+1代表暴力。。。。。。。可能会拼错,因为其中一个事件是,必须在之前从TreeSelectionListener测试这正是我要找的。我把它放在眼前,并没有看到
isEditable()
+1的暴力参数。。。。。。。可能会拼错,因为其中一个事件是,必须在之前从TreeSelectionListener测试这正是我要找的。我把它放在眼前,并没有看到
isEditable()
+1的暴力参数。。。。。。。可能会拼错,因为其中一个事件是,必须在之前从TreeSelectionListener测试这正是我要找的。我把它放在眼前,并没有看到
isEditable()
+1的暴力参数。。。。。。。可能会拼错,因为其中一个事件是,必须在之前从TreeSelectionListener测试这正是我要找的。我把它放在眼前,没有看到
isEditable()
的参数。