我有一个JTree
,我给实现了TreeNode
接口的对象和自定义TreeModel
来显示它们(不使用DefaultMutableTreeNode
)。我想改变一些节点的文字颜色。除了javax.swing.tree.DefaultTreeCellRenderer.setTextNonSelectionColor(Color newColor)
之外,我找不到文档中的任何内容,但它会不加区分地改变一切,并且我只需要它用于某些节点(特别是断开的链接,即在磁盘上找不到相应文件的节点,应该是灰色,其余的应该是默认的)。它可以做到,以及如何?着色JTree的TreeNodes
3
A
回答
3
你接近你的答案。你需要做的是子类DefaultTreeCellRenderer
并覆盖一些DefaultTreeCellRenderer
的方法。然后确保您告诉树使用您的自定义单元格渲染器。
你将需要做的是有一些状态变量,指示链接是否中断,并基于此设置节点的颜色。
+0
显然,状态变量不是问题:),但纯粹是JTree的接口......无论如何,你的意思是'\t getTreeCellRendererComponent'?是否就像从该函数返回JLabel一样简单?几个小时后,我会得到一点空闲时间。谢谢... – Amadan 2010-05-24 04:38:02
0
您可能还会看到org.netbeans.swing.outline
,在此answer中提到。 TableCellRenderer
和RenderDataProvider
接口的普通扩展使得定制树中行的外观变得特别容易。
相关问题
- 1. JTree选择颜色
- 2. 颜色行中的JTree
- 3. GLSL:顶点着色器无片段着色片段着色器
- 4. 覆盖选择颜色 - JTree的
- 5. Ext.js可编辑TreeNodes
- 6. 着色UIImage的CGPoint
- 7. Molehill的着色器
- 8. 矩形的着色
- 9. 着色datagrid行
- 10. 着色行
- 11. 着色UIbuttons
- 12. 着色按钮
- 13. 着色对象
- 14. OpenGL着色器?
- 15. ASPxGridView着色
- 16. 着色上Avalonedit
- 17. Eclipse块着色
- 18. 着色JComboBox
- 19. UIImage PNG着色
- 20. 细胞着色
- 21. 着色线框
- 22. UIActionSheet着色
- 23. 着色与scale_color_manual
- 24. 着色/在Emacs
- 25. 给定图的顶点的k-着色计算(k-1) - 着色
- 26. 表面着色器中的统一着色器顶点格式
- 27. GLSL将着色的法线传递给着色器
- 28. 使用OpenGL着色器语言编写简单的着色器
- 29. 为使用数组着色的着色器设置动画
- 30. 从几何着色器的片段着色器
另请参阅TreeIconDemo2中的_如何使用Trees_ http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html – trashgod 2010-05-24 04:34:59
Doh!谢谢! “因为'DefaultTreeCellRenderer'是'JLabel'的子类,所以你可以使用任何'JLabel'方法(比如'setIcon')来定制'DefaultTreeCellRenderer'。非常感谢你和@Justin。 – Amadan 2010-05-24 04:42:45
你确切地说! – trashgod 2010-05-24 16:06:54