着色JTree的TreeNodes

时间:2010-05-24 03:28:20

标签: java swing jtree

我有一个JTree我提供了实现TreeNode界面的对象,还有一个自定义TreeModel来显示它们(不使用DefaultMutableTreeNode)。我想改变一些节点的文本颜色。除了javax.swing.tree.DefaultTreeCellRenderer.setTextNonSelectionColor(Color newColor)之外,我在文档中找不到任何内容,但它会不加区分地改变所有内容,而我只需要一些节点(特别是断开的链接,即在其上找不到相应文件的节点)磁盘,应该是灰色的,其余的应该是默认的)。可以做到,怎么做?

2 个答案:

答案 0 :(得分:3)

你接近你的答案。您需要做的是对DefaultTreeCellRenderer进行Sub Class并覆盖一些DefaultTreeCellRenderer的方法。然后确保告诉树使用自定义单元格渲染器。

您需要做的是有一些状态变量来指示链接是否被破坏,并根据该变量设置节点的颜色。

答案 1 :(得分:0)

您还可以查看org.netbeans.swing.outline中提到的answerTableCellRendererRenderDataProvider接口的普通扩展使得自定义树中行的外观变得特别容易。