Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4306836

Per-item tooltips not possible for JList unlike JTree and JTable

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 1.4.0
    • 1.3.0
    • client-libs
    • beta
    • sparc
    • solaris_7



      Name: skT88420 Date: 01/24/2000


      java version "1.3beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.3beta-O)
      Java(TM) HotSpot Client VM (build 1.3beta-O-release, 1.3beta-O-release,
      interpreted mode)


      This is an RFE. It is possible with minimal customization to provide a per-node
      tooltip for JTree and a per-cell tooltip for JTable, but it is not possible
      (AFAICT) to provide a per-item tooltip for JList without subclassing JList.
      This behavior is inconsistent and requires a user of the Swing library to
      implement code that really belongs in JList itself.

      Steps to reproduce -

      1. Compile TTT.java
      2. Run it under jdk1.3 beta
      3. Hover the mouse pointer over a tree node - the tooltip appears as expected
      4. Hover the mouse pointer over a list item - the tooltip does not appear

      /* Begin TTT.java */

      import java.awt.*;
      import javax.swing.*;
      import javax.swing.tree.*;

      public class TTT
      {
              static class MyTreeRenderer extends DefaultTreeCellRenderer
              {
                      public Component getTreeCellRendererComponent (JTree tree,
                              Object value, boolean selected, boolean expanded,
                              boolean leaf, int row, boolean focus)
                      {
                              Component comp = super.getTreeCellRendererComponent
                                      (tree, value, selected, expanded, leaf, row,
      focus);
                              setToolTipText (value.toString ());
                              return comp;
                      }
              }

              static class MyListRenderer extends DefaultListCellRenderer
              {
                      public Component getListCellRendererComponent (JList list,
                              Object value, int index, boolean selected, boolean
      focus)
                      {
                              Component comp = super.getListCellRendererComponent
                                      (list, value, index, selected, focus);
                              setToolTipText (value.toString ());
                              return comp;
                      }
              }

              public static void main (String[] args)
              {
                      TTT tt = new TTT ();
              }

              JFrame frame;
              JTree tree;
              JList list;
              JSplitPane splitter;

              public TTT ()
              {
                      frame = new JFrame ("Tool Tip Test");
                      frame.setDefaultCloseOperation (frame.EXIT_ON_CLOSE);

                      list = new JList (new String[] {"One", "Two", "Three", "Four"});
                      list.setCellRenderer (new MyListRenderer ());

                      tree = new JTree ();
                      tree.setCellRenderer (new MyTreeRenderer ());

                      ToolTipManager.sharedInstance ().registerComponent (list);
                      ToolTipManager.sharedInstance ().registerComponent (tree);

                      splitter = new JSplitPane (JSplitPane.HORIZONTAL_SPLIT,
                              new JScrollPane (tree), new JScrollPane (list));

                      frame.getContentPane ().add (splitter);

                      frame.setSize (400, 400);
                      frame.setVisible (true);
              }
      }

      /* End TTT.java */
      (Review ID: 100313)
      ======================================================================

            svioletsunw Scott Violet (Inactive)
            skonchad Sandeep Konchady
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: