IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

[JTable] tooltips differents pour chaque cellule


Sujet :

Composants Java

  1. #1
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut [JTable] tooltips differents pour chaque cellule
    Salut ,
    J'ai une table où j'ai intégré des petits drapeaux de pleins de pays grâce à ces classes:

    class CenterRenderer extends DefaultTableCellRenderer
    et
    class MyTableModel extends DefaultTableModel

    Les drapeaux sont tous dans la meme colonne.
    J'aimerai que lorsque que l'utilisateur passe sa souris sur l'un des drapeau, un tooltip indique à quel pays ça correspond.
    J'ai déjà essayé d'installer un tooltip dans la methode getTableCellRendererComponent, mais ça ne fonctionne que sur les cellules où il n'y a que du texte !
    Quelqu'un voit pourquoi ?
    (question subsidiaire : comment savoir qu'une cellule a été éditée ?)

    Voilà Merci bien !

  2. #2
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Il faut que tu ajoutes un tooltip à chaque composant "drapeau"...

  3. #3
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut
    hmmm le probleme c'est que y'a au moins 300 drapeaux différents

  4. #4
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Par exemple en modifiant la méthode getTableCellRendererComponent() ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class CenterRenderer extends DefaultTableCellRenderer {
        ...
        public Component getTableCellRendererComponent(
                                JTable table, Object value,
                                boolean isSelected, boolean hasFocus,
                                int row, int column) {
            super.getTableCellRendererComponent(table, value, isSelected,
                    hasFocus, row, column);
            Country country = (Country) value;
            setToolTipText(country.getName());
        }
    }
    Dans l'exemple, la classe Country est censée représenter un pays. Le nom du pays est donnée via la méthode getName().

  5. #5
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut
    merci pour la reponse, ...malheureusement c'est ce que je faisais, et sur le drapeau (une imageicon), ca ne marche pas, mais seulement sur les objets de type string

  6. #6
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Tu es sûr ??? Tu pourrais poster le code de ta classe CenterRenderer stp ?

  7. #7
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut
    oops désolé, developpez.com me previent plu quand je poste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    class CenterRenderer extends DefaultTableCellRenderer
    {
      public CenterRenderer()
      {
       setHorizontalAlignment( CENTER );
      }
     
      public Component getTableCellRendererComponent(
       JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
      {
       if(column == 0)
       {
        String str = (String)(((String[])BigThr.playerVector.elementAt(row))[1]);
        int temp = Integer.parseInt(str)-1;
        String country = (String)TanX.countriesCombo.getItemAt(temp);
        String status = ((String[])BigThr.playerVector.elementAt(row))[4];
        status = "present";
        if(status.trim().equals("0")) status = "away";
        setToolTipText("country: "+country+", status: "+status);
       }
     
       super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
     
       if (isSelected)
       {
        setBackground( table.getSelectionBackground() );
       }
       else
        setBackground( table.getBackground() );
     
       return this;
      }
     
         public void editingStopped(ChangeEvent e)
      {
       //write ur code here
      }
     
            // The following methods override the defaults for performance reasons
            public void validate() {}
            public void revalidate() {}
            protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {}
            public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {}
    }

Discussions similaires

  1. [GridBagLayout]Une bordure pour chaque cellule ?
    Par Arpheus dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 20/09/2010, 14h50
  2. Couleur pour chaque cellule d'une colonne
    Par lo_schil dans le forum Composants
    Réponses: 3
    Dernier message: 03/06/2010, 11h48
  3. Réponses: 0
    Dernier message: 01/06/2010, 07h49
  4. [JTable] Redéfinition pour chaque cellule
    Par ChipsterJulien dans le forum Composants
    Réponses: 3
    Dernier message: 02/05/2010, 10h56
  5. Jtable + ToolTip dans les cellules
    Par tuxor dans le forum Composants
    Réponses: 6
    Dernier message: 20/11/2005, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo