的样式(颜色,字体)我有一个JFrame
两个面板2 JTree
。我想在拖放节点的样式(颜色和字体)从一棵树变成了other.Please我提供了一种永久地改变一个JTree
节点的颜色。如何改变单一的JTree节点
4
A
回答
10
要开始,你需要有一个数据对象,可以处理样式和颜色。你可以继承DefaultMutableTreeNode并添加这些数据项与
然后,你需要创建一个自定义的TreeCellRenderer getts和setter。我建议扩展DefaultTreeCellRenderer,并在覆盖处理程序中检查您的自定义类,并修改JLabel输出以使用字体和颜色(如果这些值已设置)
5
创建您自己的CellRenderer
。为了给适当的行为你MyTreeCellRenderer
,你将不得不延长DefaultTreecellRenderer
并重写getTreeCellRendererComponent
方法。
public class MyTreeCellRenderer extends DefaultTreeCellRenderer {
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean exp, boolean leaf, int row, boolean hasFocus) {
super.getTreeCellRendererComponent(tree, value, sel, exp, leaf, row, hasFocus);
// Assuming you have a tree of Strings
String node = (String) ((DefaultMutableTreeNode) value).getUserObject();
// If the node is a leaf and ends with "xxx"
if (leaf && node.endsWith("xxx")) {
// Paint the node in blue
setForeground(new Color(13, 57 ,115));
}
return this;
}
}
最后,说你的树被称为myTree
,设置你的CellRenderer
它:
myTree.setCellRenderer(new MyTreeCellRenderer());
+1
感谢您对您的代码段。完美工作! – Nadya 2016-02-19 14:43:14
相关问题
- 1. 改变JTree的节点文本运行
- 2. 更改JTree中的节点
- 3. 如何折叠JTree节点?
- 4. JTree单节点前景
- 5. 更改JTree的节点图像动态
- 6. 如何计算JTree中的节点数?
- 7. Jtree节点添加
- 8. 改变JTree的节点图标根据深度级别
- 9. 如何不折叠节点JTree的节点编辑
- 10. 如何在JTree中移动节点?
- 11. 如何在jtree中重命名节点
- 12. 编辑JTable单元,作为JTree节点
- 13. 索引JTree的节点
- 14. JTextarea作为JTree的节点
- 15. JTree如何以编程方式更改节点?
- 16. JTree的:如何获得一个选择的节点
- 17. Java JTree仅扩展一级节点
- 18. startEditingAtPath()将节点添加到一个JTree
- 19. 如何获得jtree中每个节点的唯一id或值?
- 20. 如何使jtable成为jtree的一个节点
- 21. JTree的:如何检查当前节点是一个文件
- 22. 如何在单击树时从JTree获取节点路径?
- 23. JTree节点在第二次鼠标点击后改变它的表示
- 24. Jtable作为Jtree节点
- 25. JTree编辑根节点?
- 26. JTree动态节点插入
- 27. 在JTree中获取节点
- 28. 如何在节点对象的状态更改时动态更改JTree视图?
- 29. D3改变单个节点的电荷
- 30. jtree右键单击只选择一个节点
这将是有益的,如果你提供一些代码.. – 2012-04-11 18:51:24
不,这将是有帮助的,如果你提供了一些代码。然后,我们可以帮助您解决它出现的问题 – ControlAltDel 2012-04-11 18:53:16
“TreeCellRenderer”的+1。 @soumitrachatterjee:可以找到一个相关示例[here](http://stackoverflow.com/a/8351850/230513);添加'setForeground(Color.blue)'可以帮助你创建一个[sscce](http://sscce.org/)。 – trashgod 2012-04-11 19:10:35