[英]What's wrong with this colored JTree? (custom renderer problem)
我想編寫自定義TreeCellRenderer以具有不同顏色的根,節點和葉子。
這是我的代碼:
tree.setCellRenderer(new DefaultTreeCellRenderer() {
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
{
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
if (node.isRoot()) {
super.setBackground(Color.red);
} else if (node.getChildCount() > 0) {
super.setBackground(Color.yellow);
} else if (leaf) {
super.setBackground(Color.green);
}
return super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
}
}
});
不幸的是,只有選定的節點會更改顏色。
我究竟做錯了什么? TIA尋求幫助。
//更新:我關聯了我的代碼,但沒有幫助。
也許您的意思是setBackgroundColor()
而不是setBackgroundSelectionColor()
,顧名思義,它僅設置所選狀態的顏色。
您對super
使用超級輕松[此機智的話要歸功於Carl Smotricz ]。
為什么在設置顏色之前調用super.getTreeCellRendererComponent(並最終返回此顏色)? 嘗試先設置顏色,然后返回super.getTreeCellRendererComponent返回的內容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.