建议从DefaultTreeCellRenderer继承自己的Renderer覆盖getTreeCellRendererComponent方法!这是我的一个列子 public MyRenderer() {
greenIcon = new ImageIcon(getClass().getResource("/resource/green.jpg"));
redIcon = new ImageIcon(getClass().getResource("/resource/red.jpg"));
hostIcon = new ImageIcon(getClass().getResource("/resource/Host16.gif"));
} public Component getTreeCellRendererComponent(
JTree tree,
Object value,
boolean sel,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus) { super.getTreeCellRendererComponent(
tree, value, sel,
expanded, leaf, row,
hasFocus);
DefaultMutableTreeNode node=(DefaultMutableTreeNode)value;
Object someThing=node.getUserObject();
if(someThing instanceof ServiceHost){
setOpenIcon(hostIcon);
setClosedIcon(hostIcon);
}
else if(someThing instanceof ServiceConfig){
if (leaf && isRunning(someThing).compareTo("NO")==0) {
setIcon(redIcon);
}
else if(leaf && isRunning(someThing).compareTo("YES")==0){
setIcon(greenIcon);
}
else{}
}
else{
}
return this;
} protected String isRunning(Object value) {
ServiceConfig nodeService=(ServiceConfig)value;
return nodeService.isRunning();
}
ServiceHost 和ServiceConfig
是我节点上的类
greenIcon = new ImageIcon(getClass().getResource("/resource/green.jpg"));
redIcon = new ImageIcon(getClass().getResource("/resource/red.jpg"));
hostIcon = new ImageIcon(getClass().getResource("/resource/Host16.gif"));
} public Component getTreeCellRendererComponent(
JTree tree,
Object value,
boolean sel,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus) { super.getTreeCellRendererComponent(
tree, value, sel,
expanded, leaf, row,
hasFocus);
DefaultMutableTreeNode node=(DefaultMutableTreeNode)value;
Object someThing=node.getUserObject();
if(someThing instanceof ServiceHost){
setOpenIcon(hostIcon);
setClosedIcon(hostIcon);
}
else if(someThing instanceof ServiceConfig){
if (leaf && isRunning(someThing).compareTo("NO")==0) {
setIcon(redIcon);
}
else if(leaf && isRunning(someThing).compareTo("YES")==0){
setIcon(greenIcon);
}
else{}
}
else{
}
return this;
} protected String isRunning(Object value) {
ServiceConfig nodeService=(ServiceConfig)value;
return nodeService.isRunning();
}
ServiceHost 和ServiceConfig
是我节点上的类
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货