我正在使用JTree,正在使用DefaultTreeModel。这个树模型内部有一些节点,当我单击一个节点时,我会获得该节点的信息,然后更改背景颜色以显示该节点已被选中。
当我单击树上的任何位置时,可以调用树以清除选择吗?通过清除选择,我将能够再次更改背景色,但是clearSelection()当我从树中单击时,我不知道如何或在何处使用树的方法。
这是我正在使用的代码:
这个例子:
import javax.swing.*;
import javax.swing.tree.*;
import java.awt.*;
public class JTreeSelectDeselect {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
JPanel panel = new JPanel(new BorderLayout());
JTree tree = new JTree();
tree.setCellRenderer(new DeselectTreeCellRenderer());
panel.add(tree, BorderLayout.LINE_START);
panel.add(new JScrollPane(new JTextArea(10, 30)));
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
class DeselectTreeCellRenderer extends DefaultTreeCellRenderer {
@Override
public Color getBackgroundSelectionColor() {
return new Color(86, 92, 160);
}
@Override
public Color getBackground() {
return (null);
} …Run Code Online (Sandbox Code Playgroud)