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

时间:2013-11-13 11:02:46

标签: java swing mouseevent jtree key-bindings

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

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

我有开始编辑的代码我只需要关闭JTree开始编辑其他事件。

1 个答案:

答案 0 :(得分:3)

据我了解,您需要管理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)