我有一个JTree,在特定情况下我想将其切换到“无用户输入模式”。在此模式下,用户应该无法更改树的选择。但是,当前选择应保持不变,并且仍应能够以编程方式进行更改。
我尝试设置tree.setFocusable(false)
- >用户仍然可以更改选择
我构建了一个消耗点击事件的MouseListener
- >用户仍然可以更改选择
我试过tree.setSelectionModel(null)
- >没有选择可见
原则上我可以tree.setEnabled(false)
然后树会变成灰色和丑陋。
关于如何阻止用户更改选择的任何想法,或者我如何在禁用状态下正常绘制JTree
?
答案 0 :(得分: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);
}
});
当选择更改时,您再次选择所需的节点。