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 :

problème de couleur de cellule dans une JTable


Sujet :

Composants Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 87
    Points : 55
    Points
    55
    Par défaut problème de couleur de cellule dans une JTable
    Bonjour à tous!
    Au début j'avais remonté un ancien sujet mais je me suis aperçu qu'il y avait le tag "résolu" donc cela peut induire que personne ne va aller lire ce topic!

    Voilà mon problème:
    je veux colorier les cellules d'une JTable en fonction de leur numéro de ligne... j'ai donc testé ce code:
    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
    public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column){
     
       //D'abord, récupérer le composant :
       Component retour = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
     
       // Mon traitement...                  
     
       //Modifier la couleur
       if(column == 1){
     
             //Appliquer les modification sur le composant de retour      if (!myTools.verifRename(texte)) {
            retour.setBackground(new java.awt.Color(255,51,51));
          }
          else if (myTools.dplc(cheminPlan, texte + extension)){
              //Appliquer les modification sur le composant de retour
              retour.setBackground(new java.awt.Color(255,255,102));
          }
          else if (row%2==0) {
              //Appliquer les modification sur le composant de retour
              retour.setBackground(new java.awt.Color(220,220,220));
          }
          else {
              //Appliquer les modification sur le composant de retour
              retour.setBackground(new java.awt.Color(255,250,222));
          }
       }
       else{
            //Appliquer les modification sur le composant de retour
            retour.setBackground((row%2==0)?new java.awt.Color(220,220,220):new java.awt.Color(255,250,222));
       }
     
       //retourner le composant
       return retour;
    }
    En le modifiant à ma façon mais cela ne marche pas ou plutôt je viens de tester le code proposé mais en fait Eclipse me met une erreur sur cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Component retour = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
    Et je comprends pas vraiment pourquoi... en fait je me dis que je ne peux pas utiliser une fonction que je suis en train de définir, si?
    Bref, si quelqu'un peut m'aider, je lui en serais très reconnaissant!
    Je tiens à préciser que eclipse ne me propose rien du tout comme solution intuitive!
    De plus je fais ceci pour définir à quoi j'applique mon TableCellRenderer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maTable3.setDefaultRenderer(Color.class, new ColorTableCellRenderer());
    Merci d'avance et bonne journée à tous!

  2. #2
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 87
    Points : 55
    Points
    55
    Par défaut
    Toujours pas d'idées?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 27
    Points : 12
    Points
    12
    Par défaut
    bonjour,
    je profite de ce sujet poru poser une question :
    j'ai une grille toute simple, sans bouton ni texte ni image ni quoi que ce soit.
    je veux juste colorier l'une des cases en noir, quel est le moyen le plus simple ?
    ai je besoin d'aller creer d'autres clases ou est il possible d'acceder directement à une cellule ?
    j'ai deja réussi a modifier une cellule en ajoutant du texte, mais pas de la couleur.
    ma grille n'as pas besoin d'etre éditée par l'utilisateur, elle est la juste pour etre affichée.
    merci.

  4. #4
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,

    rprom1, ton code est parfait, il suffit juste de le mettre dans une classe qui hérite de DefaultTableCellRenderer. Ainsi, l'appel à super.getTableCellRendererComponent est utile, car il retourne le Renderer par défaut, que tu n'as plus qu'à personnaliser, ce que tu fais très bien.

    Si la classe dans laquelle tu places ce code n'hérite pas de DefaultTableCellRenderer, mais implémente TableCellRenderer, alors il faut tout coder de zéro (à partir d'un JLabel par exemple), mais au niveau des optimisations, il y a pas mal de trucs à savoir. Je te conseille donc d'hériter de DefaultTableCellRenderer et de laisser ton code comme il est.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. Problème de dimensionnement de JTextArea dans une JTable
    Par Fractaliste dans le forum Composants
    Réponses: 4
    Dernier message: 13/12/2011, 23h43
  2. Couleur des cellules dans une StringGrid
    Par dekalima dans le forum C++Builder
    Réponses: 4
    Dernier message: 03/09/2010, 14h58
  3. Couleur des titres dans une JTable
    Par drasalmed dans le forum Composants
    Réponses: 3
    Dernier message: 28/05/2007, 15h45
  4. Problème de lecture des cellules dans une feuille Excel
    Par wangjun dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/10/2006, 09h35
  5. [JTable] couleur de sélection dans une JTable
    Par spoutyoyo dans le forum Composants
    Réponses: 7
    Dernier message: 06/12/2004, 11h43

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