09. februar 2001 - 09:30
Der er
2 kommentarer og
1 løsning
Skifte farve i JTree, hvordan?
Jeg har en træstruktur bestående af DefaultMutableTreeNode objekter. Nu vil jeg gerne vide hvordan man skifter farve for tekststrengene... nogle af dem skal være røde, andre skal være sorte - altså: noderne skal ikke have samme farve alle sammen.
Hvis det stadig er interessant så kan jeg fortælle løsningen.
Et JTree tegnes ved hjælp af et tilknyttet objects, som hedder en TreeCellRenderer. Den bruger default en DefaultTreeCellRenderer som du kan lave som ala:
class MyRenderer extends DefaultTreecellRenderer {
}
Ups, det smuttede lige:
class MyRendere extends DefaultTreeCellRenderer{
public Component getTreeCellRendererComponent(
JTree tree, Object value, boolean selected,
boolean expanded, boolean leaf, int row,
boolean hasFocus) {
// value er din TreeNode, hvis du skal bruge oplysninger derfra
JLabel l = (Jlabel) super.getTreeCellRendererComponent(
tree, value, selected, expanded, leaf, row, hasFocus);
l.setForeground(Math.random()>.5 ? Color.cyan : Color.red);
return l;
}
}
Og derefter når du laver dit træ:
JTree tree = new JTree(myTreeNodeModelThingy);
tree.setCellRenderer(new MyRenderer());
Og det skulle være det.