JTable et ToolTip

cs_JuS Messages postés 121 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 20 mars 2009 - 26 août 2003 à 14:41
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 - 26 août 2003 à 14:57
Coucou tout le monde !

Alors aujourd'hui j'ai (encore) un problème.
J'ai une table JTable et je voudrais mettre un ToolTip dessus.
J'ai réussi à le faire sur l'en tete des colonnes, mais maintenant je le voudrais pour toutes les cellules de mon tableau (je pense qu'il faut modifier le Renderer mais je vois pas trop comment).
Je ne peux pas mettre le code, il est vraiment trop gros !

Merci pour votre aide.

-=[JuS]=-

3 réponses

cs_JuS Messages postés 121 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 20 mars 2009 1
26 août 2003 à 14:47
A croire que dès que je poste je trouve la solution !!!

Je viens de trouver comment il fallait faire.
Il faut déclaré votre JTable de la sorte :

JTable table = new JTable() {
public Component prepareRenderer(TableCellRenderer renderer,
int rowIndex, int vColIndex) {
Component c = super.prepareRenderer(renderer, rowIndex, vColIndex);
if (c instanceof JComponent) {
JComponent jc = (JComponent)c;
jc.setToolTipText((String)getValueAt(rowIndex, vColIndex));
}
return c;
}
};

Merci qui ? Bibiiiii...

-=[JuS]=-
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
26 août 2003 à 14:52
bonjour,

j ai trouvé ce ptit bout de code qui devrait t aider je pense:

/**
*classe heritant de cellrenderer
**/

   private class MyTableCellRenderer extends 
javax.swing.table.DefaultTableCellRenderer {

     public Component getTableCellRendererComponent( JTable table, 
Object value,
boolean isSelected, boolean hasFocus, int row, int column) {

       Component c = super.getTableCellRendererComponent( table, value, 
isSelected,
hasFocus, row, column);

       if (value instanceof NamedObject) {
 
((JComponent)c).setToolTipText(((NamedObject)value).getDescription());
       }
       // LOOK!! should turn tip off if there is none !!

       return c;
     }
   }


benohite
:big)
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
26 août 2003 à 14:57
re bonjour
le meme dans un autre version plus comprehensible a mon gout :-)

public class YourRenderer extends
javax.swing.table.DefaultTableCellRenderer {
 public Component getTableCellRendererComponent(JTable table, Object
 value,
boolean isSelected, boolean hasFocus, int row, int column) {
 Component result = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
 if (result instanceof JLabel) {
  ((JLabel) result).setToolTipText((String)
table.getValueAt(row, 0));
 }
 return result;
 }
}


en fait la jtable utilise pour chaque cellule un objet pour y dessiner l objet de donnees
ex: un jlabel pour un string un integer ...etc
si tu n utilise pas de liste ou de boite a cocher alors je pense que ce code marchera pour toutes tes cellules

benohite
:big)
Rejoignez-nous