代码之家  ›  专栏  ›  技术社区  ›  Amadan

着色树的树节点

  •  3
  • Amadan  · 技术社区  · 15 年前

    我有一个 JTree 我给实现 TreeNode 接口和自定义 TreeModel 显示它们(不使用 DefaultMutableTreeNode ). 我想改变一些节点的文本颜色。我在文件里什么也找不到除了 javax.swing.tree.DefaultTreeCellRenderer.setTextNonSelectionColor(Color newColor) ,但它会不加区别地更改所有内容,我只需要为某些节点使用它(具体来说,断开的链接,即磁盘上找不到相应文件的节点,应该灰显,其余的应该是默认的)。能做到吗?怎么做到?

    2 回复  |  直到 15 年前
        1
  •  3
  •   jjnguy Julien Chastang    15 年前

    你已经接近你的答案了。你需要做的是把班级分为 DefaultTreeCellRenderer 覆盖一些 的方法。然后确保告诉树使用自定义单元渲染器。

    您需要做的是使用一些状态变量来指示链接是否断开,并基于此设置节点的颜色。

        2
  •  0
  •   Community CDub    8 年前

    你也可以看看 org.netbeans.swing.outline ,在本文中提到 answer . 普通扩展 TableCellRenderer 以及 RenderDataProvider 接口使得定制树中的行的外观特别容易。