import java.awt.BorderLayout; 
import java.awt.Component; 
 
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; 
 
public class MainClass { 
 
  public static void main(final String args[]) { 
    JFrame frame = new JFrame("Tree Tips"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 
    JTree tree = new JTree(new String[]{"a","b","c"}); 
    ToolTipManager.sharedInstance().registerComponent(tree); 
    TreeCellRenderer renderer = new ToolTipTreeCellRenderer(); 
    tree.setCellRenderer(renderer); 
    JScrollPane scrollPane = new JScrollPane(tree); 
    frame.add(scrollPane, BorderLayout.CENTER); 
    frame.setSize(300, 150); 
    frame.setVisible(true); 
  } 
} 
 
class ToolTipTreeCellRenderer implements TreeCellRenderer { 
  DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer(); 
 
  public ToolTipTreeCellRenderer() { 
  } 
 
  public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, 
      boolean expanded, boolean leaf, int row, boolean hasFocus) { 
 
    Object tip = null; 
    if (value != null) { 
       
      if (value instanceof DefaultMutableTreeNode) { 
        tip = ((DefaultMutableTreeNode) value).getUserObject(); 
      } else { 
        tip = tree.convertValueToText(value, selected, expanded, leaf, row, hasFocus); 
      } 
      renderer.setToolTipText((String)tip); 
    } 
    renderer.setText((String)tip); 
    return renderer; 
  } 
} 
            
       
  |