【问题标题】:CheckBox Node renderer复选框节点渲染器
【发布时间】:2012-01-24 19:41:04
【问题描述】:

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

我是通过下面的代码sn-p实现的。

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;

}

结果的屏幕截图是这样的。

现在您可以看到包含文本“One”的灰色区域。

你能指导我清除灰色区域吗?

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

:)

【问题讨论】:

  • 灰色可能来自您的面板。尝试拨打panel.setOpaque( false );
  • @Robin 。 setOpaque 在这里不起作用。试过了。

标签: java swing


【解决方案1】:

对于这个问题,TreeCellRenderer 中的setBackground 有一个非常简单的解决方法,Color 返回

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

包括昨天的example

【讨论】:

  • 你的意思是renderer.setBackground(UIManager.getColor("Tree.textForeground"));
  • @Achilles 请不要,Renderer 返回组件,顺便说一句,您是否尝试过我昨天发布的代码示例,检查变量 textForeground = UIManager.getColor("Tree.textForeground");textBackground = UIManager.getColor("Tree.textBackground"); 以了解它们在 TreeCellRenderer 中的使用情况,我当然明白你的问题 --> 一年前(1 年和 1/2 年)我有同样的冰球和很多 Swing 方法:-)
  • 我尝试了您建议的方法。但它似乎不起作用。如果您注意到上面的代码,我使用标签并将文本放在标签内,然后将标签放在面板内。有什么建议吗?
猜你喜欢
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
  • 2014-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多