String[] strFriend = {{"11","12","13"},
{"21","22","23"},
{"31","32","33"}};
Hashtable ht1 = new Hashtable();
ht1.put("普通朋友", strFriend[0]);
ht1.put("好朋友", strFriend[1]);
ht1.put("其他朋友", strFriend[2]);
tree = new JTree(ht1);
知道 str = "22";
怎么更改 22叶子的背景色谢谢
{"21","22","23"},
{"31","32","33"}};
Hashtable ht1 = new Hashtable();
ht1.put("普通朋友", strFriend[0]);
ht1.put("好朋友", strFriend[1]);
ht1.put("其他朋友", strFriend[2]);
tree = new JTree(ht1);
知道 str = "22";
怎么更改 22叶子的背景色谢谢
public class TestTreeCellRenderer extends DefaultTreeCellRenderer{
@SuppressWarnings("unchecked")
public Component getTreeCellRendererComponent(JTree tree,Object value,
boolean sel,
boolean expanded,
boolean leaf,int row,
boolean hasFocus){
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
NodeUserObject userObject = (NodeUserObject) node.getUserObject();
Icon nodeIcon = userObject.getIcon();
String nodeText = userObject.getText();
this.setText(nodeText);
this.setIcon(nodeIcon);
setComponentOrientation(tree.getComponentOrientation());
this.hasFocus = hasFocus;
this.selected = sel;
return this;
}
}
public Component getTreeCellRendererComponent(JTree tree,Object value,
boolean sel,
boolean expanded,
boolean leaf,int row,
boolean hasFocus)其中的Object value就是叶子节点的对象 你可以获取这个对象 然后根据它的值来判断
===========================
这样可以更改节点的一些状态
可是,怎么控制其中的一个??我对setCellRenderer 的理解就是所有的节点都变了,
我只想改变一个或几个
你的理解错了 不是所有的节点都变 它是一个一个节点来刷的 每个节点都可以不一样 你试试就知道了 实践出真知 不要想当然
===================
谢谢,差不多解决了