Well I tryed your solution, and ...... back to the same point,No tooltips! the JList component behaves like if it has one of these transparent panel on top to catch all mouse events, so the JLabel items never know the mouse is over them. Registering them to the ToolTipManager has no effect.
 
here is my extension of the DefaultListCellRenderer class
 
    class MyListCellRenderer extends DefaultListCellRenderer {

        public Component getListCellRendererComponent(JList list,Object value,int index,boolean sel,boolean focus) {
            Component c = super.getListCellRendererComponent(list,value,index,sel,focus);
            if (c instanceof JLabel) {
                // System.out.println("coucou "+String.valueOf(index));
                // ToolTipManager.sharedInstance().registerComponent((JLabel)c);
                ((JLabel)c).setToolTipText("My tooltip for index "+String.valueOf(index));
            }
            return c;
        }
    }
 
thanks
 
----- Original Message -----
From: Greg Munt
Sent: Wednesday, June 06, 2001 5:46 PM
Subject: Re: Tooltips in JList

IIRC DefaultListCellRenderer returns JLabels cast to Component. So, simply cast them to JComponent, to set the tool tip text.
-----Original Message-----
From: Arnaud Hallais <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Cc: [EMAIL PROTECTED] <[EMAIL PROTECTED]>; [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Date: Wednesday, June 06, 2001 04:32
Subject: Tooltips in JList

Hello,
 
I'd like to make a JList which displays different tooltips depending on which item the mouse is on. Is there any simple way to do this, I did not find it, sorry!
 
1 - I tryed to overwrite the JList method getToolTipText() but I am missing the position of the mouse so I can't determine which item is under the mouse
2 - I tryed to overwrite the DefaultListCellRenderer method getListCellRendererComponent to has a tooltip to all of the item coponents but they are Component not JComponent so no setTooltipText() method.
3 - I am stuck!
 
thanks for any advise
 
a++

Reply via email to