DefaultTreeCellRenderer

DefaultTreeCellRenderer

我有一个JTree,它提供实现TreeNode接口的对象,以及一个自定义的TreeModel以显示它们(不使用DefaultMutableTreeNode)。我想更改某些节点的文本颜色。除了javax.swing.tree.DefaultTreeCellRenderer.setTextNonSelectionColor(Color newColor),我在文档中什么都找不到,但是它将无差别地更改所有内容,并且我只需要某些节点(特别是链接断开,即在磁盘上找不到其相应文件的节点)变灰,其余应为默认)。能做到吗?如何做到?

最佳答案

您已接近答案。您需要做的是DefaultTreeCellRenderer的子类,并覆盖DefaultTreeCellRenderer的一些方法。然后确保您告诉树使用自定义单元格渲染器。

您需要做的是拥有一些状态变量,这些变量指示链接是否断开,并根据该变量设置节点的颜色。

10-01 12:40