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