Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Working with Tree Tooltips

import java.awt.BorderLayout; import java.awt.Component; import java.util.Dictionary; import java.util.Properties; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.ToolTipManager; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.TreeCellRenderer; class ToolTipTreeCellRenderer implements TreeCellRenderer {   DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();   Dictionary tipTable;   public ToolTipTreeCellRenderer(Dictionary tipTable) {     this.tipTable = tipTable;   }   public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected,       boolean expanded, boolean leaf, int row, boolean hasFocus) {     renderer.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);     if (value != null) {       Object tipKey;       if (value instanceof DefaultMutableTreeNode) {         tipKey = ((DefaultMutableTreeNode) value).getUserObject();       } else {         tipKey = tree.convertValueToText(value, selected, expanded, leaf, row, hasFocus);       }       renderer.setToolTipText((String) tipTable.get(tipKey));     }     return renderer;   } } public class TreeTips {   public static void main(String args[]) {     JFrame frame = new JFrame("Tree Tips");     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     Properties props = System.getProperties();     JTree tree = new JTree(props);          ToolTipManager.sharedInstance().registerComponent(tree);     TreeCellRenderer renderer = new ToolTipTreeCellRenderer(props);          tree.setCellRenderer(renderer);     JScrollPane scrollPane = new JScrollPane(tree);     frame.add(scrollPane, BorderLayout.CENTER);     frame.setSize(300, 150);     frame.setVisible(true);   } }