小编dan*_*ano的帖子

单击树外的任何位置时,从JTree中取消选择节点

我正在使用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)

java swing jtree

7
推荐指数
1
解决办法
332
查看次数

标签 统计

java ×1

jtree ×1

swing ×1