0

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

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

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

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

原则上我可以tree.setEnabled(false),但后来树变灰变丑了。

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

4

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

When selection changes you select again the node you need.

于 2012-12-11T16:13:50.890 回答