package eu.sicusoft.demo;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.SwingUtilities;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
/**
* SiCuSoft
*
* @author etzelsdorfer
*/
public class TreeDemo {
static JTree tree;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
TreeDemo td = new TreeDemo();
tree = new JTree(td.getRoot());
tree.setCellRenderer(new TreeRenderer("Object 2"));
JFrame f = new JFrame("Tree Cell Demo");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(new JScrollPane(tree), BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
});
}
/*
get nodes
*/
public DefaultMutableTreeNode getRoot() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("ROOT");
DefaultMutableTreeNode node;
for (int i = 0; i < 5; i++) {
node = new DefaultMutableTreeNode("Object " + i);
root.add(node);
}
return root;
}
}
// RENDERER CLASS
class TreeRenderer extends DefaultTreeCellRenderer {
String nameOfNode;
public TreeRenderer(String nameString) {
this.nameOfNode = nameString;
}
@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);
String nodeName = (String) ((DefaultMutableTreeNode) value).getUserObject();
if (leaf && nodeName.equals(nameOfNode)) {
setForeground(Color.RED);
}
return this;
}
}