的樣式(顏色,字體)我有一個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