Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 复选框节点渲染器_Java_Swing - Fatal编程技术网

Java 复选框节点渲染器

Java 复选框节点渲染器,java,swing,Java,Swing,我需要实现一个自定义树单元渲染器。 我的规范是只有一个复选框节点和父节点的文本,而不是默认树单元渲染器中使用的文件夹图标 我通过以下代码片段实现了它 public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { JL

我需要实现一个自定义树单元渲染器。 我的规范是只有一个复选框节点和父节点的文本,而不是默认树单元渲染器中使用的文件夹图标

我通过以下代码片段实现了它

public Component getTreeCellRendererComponent(JTree tree, Object value,
        boolean selected, boolean expanded, boolean leaf, int row,
        boolean hasFocus) {


    JLabel l = (JLabel)renderer.getTreeCellRendererComponent(
            tree, "", true, expanded, leaf, row, true);


    l.setIcon(null);
    l.setText(value.toString());
        panel.removeAll();
        panel.add(this, BorderLayout.WEST);
        panel.add(l);
        return panel;

}
结果的屏幕截图如下所示。

现在您可以看到包围文本“一”的灰色区域

你能指导我清除灰色地带吗

输出必须看起来文本周围没有灰色


:)

对于这个问题,在
TreeCellRenderer
中使用返回的
Color
是否有非常简单的解决方法来
setBackground

Color clr = UIManager.getColor("Tree.textForeground");

从昨天开始,对于这个问题,在
TreeCellRenderer
中是否有非常简单的解决方法,可以使用返回的
Color
解决
setBackground
问题

Color clr = UIManager.getColor("Tree.textForeground");

从昨天开始包括

您是指renderer.setBackground(UIManager.getColor(“Tree.textfrospect”)@阿喀琉斯,请不要,永远渲染器返回组件,顺便说一句,您是否尝试过我昨天发布的代码示例,请检查变量
textforground=UIManager.getColor(“Tree.textforground”)
textBackground=UIManager.getColor(“Tree.textBackground”)
对于它们在
TreeCellRenderer
中的使用,我当然理解您的问题-->一年前(1年和1/2年)我玩过同样的冰球,有很多挥杆方法:-)我尝试了您建议的方法。但似乎不起作用。如果您注意到上面的代码,我会使用一个标签,将文本放在标签内,然后将标签放在面板内。有什么建议吗?你的意思是renderer.setBackground(UIManager.getColor(“Tree.textforground”)@阿喀琉斯,请不要,永远渲染器返回组件,顺便说一句,您是否尝试过我昨天发布的代码示例,请检查变量
textforground=UIManager.getColor(“Tree.textforground”)
textBackground=UIManager.getColor(“Tree.textBackground”)
对于它们在
TreeCellRenderer
中的使用,我当然理解您的问题-->一年前(1年和1/2年)我玩过同样的冰球,有很多挥杆方法:-)我尝试了您建议的方法。但似乎不起作用。如果您注意到上面的代码,我会使用一个标签,将文本放在标签内,然后将标签放在面板内。有什么建议吗?灰色可能来自你的面板。尝试调用
panel.setOpaque(false)@Robin。set不透明在这里不起作用。试过了。灰色可能来自你的面板。尝试调用
panel.setOpaque(false)@Robin。set不透明在这里不起作用。试过了。