Java 在JTree中禁用标准鼠标行为

Java 在JTree中禁用标准鼠标行为,java,swing,awt,jtree,mouselistener,Java,Swing,Awt,Jtree,Mouselistener,我有一个JTree,在特定情况下,我想将其切换到“无用户输入模式”。在此模式下,用户应无法更改树的选择。但是,当前选择应该保持不变,并且仍然可以通过编程方式进行更改 我试图设置树。setFocusable(false)->用户仍然可以更改选择 我构建了一个MouseListener,它使用了点击事件->用户仍然可以更改选择 我尝试了tree.setSelectionModel(null)->没有可见的选择 原则上我可以tree.setEnabled(false),但是树会变成灰色和丑陋 关于如何

我有一个JTree,在特定情况下,我想将其切换到“无用户输入模式”。在此模式下,用户应无法更改树的选择。但是,当前选择应该保持不变,并且仍然可以通过编程方式进行更改

我试图设置
树。setFocusable(false)
->用户仍然可以更改选择

我构建了一个
MouseListener
,它使用了点击事件->用户仍然可以更改选择

我尝试了
tree.setSelectionModel(null)
->没有可见的选择

原则上我可以
tree.setEnabled(false)
,但是树会变成灰色和丑陋


关于如何防止用户更改选择,或者如何在禁用状态下正常绘制
JTree
,有什么想法吗?

我想我会这样做:

    tree.addChangeListener(new ChangeListener() {
        @Override
        public void stateChanged(ChangeEvent arg0) {
            TreePath path = ... // The path of the node you want to be selected 
            tree.setSelectionPath(path);
        }
    });
当选择更改时,请再次选择所需的节点。

类似问题: