- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我编写了自定义 TreeCellRenderer 以更改组件外观。一切正常,除了 setBackground
没有效果。由于前景颜色始终正确更改,因此代码肯定会执行。由于选中的项目呈现为蓝色,取消选中的项目呈现为白色(我自己没有编写该代码),因此我假设我的更改已被 JTree 覆盖。那么改变背景颜色的正确方法是什么?
这基本上是我的代码:
JTree tree = new JTree();
tree.setCellRenderer(new MyCellRenderer());
///////
public class MyCellRenderer extends DefaultTreeCellRenderer{
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean isSelected, boolean expanded, boolean leaf, int row,
boolean hasFocus) {
JComponent c = (JComponent) super.getTreeCellRendererComponent(tree, value, isSelected, expanded, leaf, row, hasFocus);
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
MyData data = (MyData)node.getUserObject();
if(data.isX()){
c.setForeground(Color.blue);
c.setBackground(Color.gray);
}
return c;
}
}
最佳答案
尝试添加对 c.setOpaque(true)
的调用。
关于java - TreeCellRenderer : how to set background color?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16500414/
我得到了一个带有自定义 TreeCellRenderer 的 JTree。 该渲染器是一个包含复选框和标签的面板。 虽然每个节点的标签文本都是固定的(在 DefaultMutableTreeNode
我一直在研究 JTree 和 TreeCellRenderer。一般来说,应用程序(具有一棵 JTree)似乎只有一个 TreeCellRenderer 实例。应用程序多次调用 TreeCellRen
我为 JTree 文件编写了一个树渲染器,它可以在第一次创建树时设置背景颜色,但它不会突出显示选择。 private class CustomTreeCellRenderer extends Defa
简而言之,我希望渲染树以使第一层为粗体。 public class TreeRenderer1 extends DefaultTreeCellRenderer { @Override public C
我有一个简单的 TreeCellRenderer,它从节点中提取 JButton,并将其输出到 JTree。 public class ButtonCellRenderer extends JButt
我正在使用下面这段代码: class CountryTreeCellRenderer implements TreeCellRenderer { private JLabel lab
如何让我的树单元填充我的 JTree 的宽度: JTree tree = new JTree(); tree.setCellRenderer(new TreeCellRenderer() {
我编写了自定义 TreeCellRenderer 以更改组件外观。一切正常,除了 setBackground 没有效果。由于前景颜色始终正确更改,因此代码肯定会执行。由于选中的项目呈现为蓝色,取消选中
有人知道如何修改 javax.swing.TreeCellRenderer 才能描边单元格中的文本吗? 最佳答案 如果您想在某些列中描边文本,您应该使用渲染器。如果所有单元格都需要这种字体,只需修改表
我有一个派生自具有自定义 TreeCellRenderer 的 JTree 的类。我已经在该树中实现了拖放操作,因此用户可以重新排列树节点。 放置模式为 DropMode.ON_OR_INSERT,因
我是一名优秀的程序员,十分优秀!