我有一个JTree
,它提供实现TreeNode
接口的对象,以及一个自定义的TreeModel
以显示它们(不使用DefaultMutableTreeNode
)。我想更改某些节点的文本颜色。除了javax.swing.tree.DefaultTreeCellRenderer.setTextNonSelectionColor(Color newColor)
,我在文档中什么都找不到,但是它将无差别地更改所有内容,并且我只需要某些节点(特别是链接断开,即在磁盘上找不到其相应文件的节点)变灰,其余应为默认)。能做到吗?如何做到?
最佳答案
您已接近答案。您需要做的是DefaultTreeCellRenderer
的子类,并覆盖DefaultTreeCellRenderer
的一些方法。然后确保您告诉树使用自定义单元格渲染器。
您需要做的是拥有一些状态变量,这些变量指示链接是否断开,并根据该变量设置节点的颜色。