1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
import org.jdesktop.swingx.JXTree;
public class TestJXtree {
public TestJXtree() {
final JFrame frame = new JFrame();
MyTreeNode root = new MyTreeNode("Root", "C'est la racine");
MyTreeNode node1 = new MyTreeNode("node1", "C'est node1");
MyTreeNode node2 = new MyTreeNode("node2", "C'est node2");
MyTreeNode node3 = new MyTreeNode("node3", "C'est node3");
node1.add(node2);
node1.add(node3);
root.add(node1);
JXTree tree = new JXTree(root);
JScrollPane scroll = new JScrollPane(tree);
tree.setCellRenderer(new MyRenderer());
ToolTipManager.sharedInstance().registerComponent(tree);
frame.getContentPane().add(scroll);
frame.setSize(500, 400);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
frame.setVisible(true);
}
});
}
class MyTreeNode extends DefaultMutableTreeNode {
private final String toolTip;
public MyTreeNode(String nodeName, String toolTip) {
super(nodeName);
this.toolTip = toolTip;
}
public String getToolTipText() {
return toolTip;
}
}
class MyRenderer extends DefaultTreeCellRenderer {
@Override
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);
if (value instanceof MyTreeNode ) {
setToolTipText(((MyTreeNode) value).getToolTipText());
}
return this;
}
}
public static void main(String[] args) {
new TestJXtree();
}
} |
Partager