Loc aliser un tooltip

Loc aliser un tooltip - Java - Programmation

Marsh Posté le 24-04-2004 à 17:17:20    

Salut a tous. J'essaie d'utiliser des tooltips sur une JList. Des fois les items de ma liste sont rop long pour apparaitre completement. Je veux donc mettre un tooltip pour faire apparaitre netierement le contenu de l'item. Mais je veux aussi que le tooltip apparaisse en lieu et place de l'item (de son renderer).
 
La doc de l'API dit que le place d'un tooltip est clalculee avec la methode getToolTipLocation(). J'ai donc surcharge cette methode sur mes renderers (auxquels sont asocies les tooltips) pour faire apparaitre le tooltip en lieu et place du renderer.
 
Le probleme, c'est que contrairement a ce que dit le doc, je constate que la methode getToolTipLocation() n'est jamais appelee avant que le tooltip n'apparaisse.
 
Je vous donne mon code, tout bete:
 

Code :
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. import java.util.Vector;
  5. public class ToolTipLocation extends JFrame {
  6.        public ToolTipLocation() {
  7.         JList list = new JList();
  8.         Vector data = new Vector(3);
  9.         data.add("choice 1" );
  10.         data.add("too long need a tooltip" );
  11.         data.add("choice 3" );
  12.         list.setCellRenderer(new MyCellRenderer));
  13.         list.setListData(data);
  14.         list.setPreferredSize(new Dimension(50, 100));
  15.         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  16.         this.getContentPane().setLayout(new FlowLayout());
  17.         this.getContentPane().add(list);
  18.         this.pack();
  19.         this.setVisible(true);
  20.     }
  21.     private class MyCellRenderer extends DefaultListCellRenderer {
  22.         public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {            JLabel component = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
  23.              component.setToolTipText(component.getText());
  24.              return component;
  25.         }
  26.         public Point getToolTipLocation(MouseEvent e) {
  27.             System.out.println("Tooltip located" );
  28.             return new Point(0, 0);
  29.         }
  30.     }
  31.     public static void main(String[] args) {
  32.         new ToolTipLocation();
  33.     }
  34. }


 
 
Essayez le et dites moi ce que vous en pensez. Merci d'avance.


---------------
Amaury.
Reply

Marsh Posté le 24-04-2004 à 17:17:20   

Reply

Marsh Posté le 26-04-2004 à 14:25:14    

jscrollpane tu connais [:dawa] :
 
 
 this.getContentPane().add(new JScrollPane(list));
 
 
;)


Message édité par veryfree le 26-04-2004 à 17:17:13
Reply

Marsh Posté le 26-04-2004 à 16:40:58    

ça marche sur les JList?
Classieux.

Reply

Marsh Posté le 26-04-2004 à 17:17:32    

seabee a écrit :

ça marche sur les JList?
Classieux.


 
ben oui , ca prend un component en argument

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed