-
Enhancement
-
Resolution: Fixed
-
P4
-
1.3.0
-
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)
======================================================================