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] Changer la couleur d'une cellule


Sujet :

Composants Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [JTable] Changer la couleur d'une cellule
    J'ai créé un tableau JTable, et je souhaite que, quand l'utilisateur clique sur un bouton, certaines cases du tableau changent de couleur. Mon problème est que je ne sais pas comment changer cette couleur. Je pense que je dois utiliser un TableCellRenderer, mais je ne comprends pas comment ça fonctionne.
    Est-ce que quelqu'un peut m'aider ?
    Merci d'avance à tous ceux qui répondront.


    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    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,
    C'est bien TableCellRenderer que tu dois utiliser. En gros, c'est une interface qu'une classe doit implémenter, en fournissant la fonction getTableCellRendererComponent(...).

    Je te conseille de créer une classe qui hérite de DefaultTableCellRenderer
    et qui surcharge getTableCellRendererComponent(...) de la manière suivante :
    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
    public class RedRenderer extends DefaultTableCellRenderer {
     
      public boolean changeColors = false;
     
      public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)  {
     
        // Tu appelles la méthode par défaut, qui te construit la case
        Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
     
        if(changeColors) {
          // Tu changes la couleur de la case
          c.setBackground(Color.RED);
          c.setForeground(Color.MAGENTA);
        }
      }
    }
    Et lorsqe tu crées ton JTable, tu précises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    maJTable.setDefaultRenderer(new RedRenderer());
    ((RedRenderer)maJTable.getDefaultRenderer()).changeColors = true;

Discussions similaires

  1. Changer la couleur d'UNE cellule d'un grid
    Par malhivertman1 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/12/2005, 10h29
  2. [JTable] Changer la couleur d'une ligne
    Par CVERRIER3 dans le forum Composants
    Réponses: 2
    Dernier message: 02/11/2005, 15h54
  3. [VB.NET] listview : changer la couleur d'une cellule
    Par SergeF dans le forum Windows Forms
    Réponses: 6
    Dernier message: 28/10/2005, 08h58
  4. changer la couleur d'une cellule
    Par maxos75 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/10/2005, 20h17
  5. Réponses: 4
    Dernier message: 01/10/2005, 11h03

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