JTree不同于JLabel,它重载了Component的getToolTipText的方法来返回每个Renderer定义的ToolTip,Sun认为这是一个较常用的模式(毕竟一般的操作都是每个节点的ToolTip不一样)如果你一定要实现一颗树只显示一个Tooltip,可以重载这个方法返回你要显示的值,不过最重要的是还要加上这句话
ToolTipManager.sharedInstance().registerComponent(tree);

解决方案 »

  1.   

    JTree tree;ToolTipManager.sharedInstance().registerComponent(tree);
    tree.setCellRenderer(new TipTreeCellRenderer()) ;class TipTreeCellRenderer extends  DefaultTreeCellRenderer {
       public Component getTreeCellRendererComponent(JTree tree,
                                                  Object value,
                                                  boolean sel,
                                                  boolean expanded,
                                                  boolean leaf,
                                                  int row,
                                                  boolean hasFocus) {
               super.getTreeCellRendererComponent(......);
               setToolTipText("what ever you wanna show");
               return this;
       }}
      

  2.   

    通过判断鼠标在哪个节点上,取得节点值,然后jTree.setToolTipText("");