有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

我构建了一个MouseListener来消耗点击事件->;用户仍然可以更改选择

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

原则上我可以tree.setEnabled(false)但随后这棵树就变成了灰色和丑陋

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


共 (1) 个答案

  1. # 1 楼答案

    我想我会这样做:

        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);
            }
        });
    

    当选择更改时,请再次选择所需的节点