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 colorier une ligne sur deux


Sujet :

Composants Java

  1. #1
    Membre régulier
    Profil pro
    Technicien Informatique
    Inscrit en
    Février 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 187
    Points : 89
    Points
    89
    Par défaut JTable colorier une ligne sur deux
    Bonjour à tous !

    Je voudrais colorier une ligne sur deux dans mon tableau
    j'ai donc procédé de la manière suivante ...les données s'affiche je peux les trier
    mais pas moyen d'avoir une ligne sur deux en couleur... pourriez vous svp m'indiquer ce qui ne va pas dans mon code pour que je comprenne mieux...


    En vous remerciant pour vos conseils

    Jean-Marc



    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    import javax.swing.*;
    import javax.swing.table.DefaultTableCellRenderer;
    import javax.swing.table.TableCellRenderer;
    import java.awt.*;
     
    public class Fenetre extends JFrame implements TableCellRenderer {
        private static TableCellRenderer tcr;
     
        public Fenetre(TableCellRenderer tcr){
            this.setLocationRelativeTo(null);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setTitle("Liste des PC ");
            this.setSize(500, 250);
     
            Object[][] data = {
                    {"PC 1", "PC Fixe", "MOI","OK","24"},
                    {"PC2", "PC Fixe", "TOI","OK","24"},
                    {"PC3", "PC Fixe", "TOTO","A REMPLACER","24"},
                    {"PC4", "PC Fixe", "GUDULE","A REMPLACER","24"},
     
     
     
     
     
            };
     
     
     
             String  title[] = {"Nom Machine", "Type", "Utilisateur","Etat","Ecran"};
            JTable tableau = new JTable(data, title);
            tableau.setBackground(Color.YELLOW);
            DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
            rightRenderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
            tableau.getColumn("Type").setCellRenderer( rightRenderer );
            tableau.getColumn("Utilisateur").setCellRenderer( rightRenderer );
            tableau.getColumn("Etat").setCellRenderer( rightRenderer );
            tableau.getColumn("Ecran").setCellRenderer( rightRenderer );
            tableau.setAutoCreateRowSorter(true);
            this.getContentPane().add(new JScrollPane(tableau));
     
        }
     
        @Override
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            Component comp = this.tcr.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
            if ((row & 1) == 0) { // Ligne paire
                comp.setBackground(Color.RED);
            } else { // Ligne impaire
                comp.setBackground(Color.BLUE);
            }
            return comp;
        }
     
        public static void main(String[] args){
            Fenetre fen = new Fenetre(tcr);
            fen.setVisible(true);
        }
    }
    Jean Marc

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    L'implémentation d'un choix de couleur sur la parité du numéro de ligne est fait dans la classe Fenetre (qui implémente effectivement TableCellRenderer), mais le renderer que tu affectes aux colonnes (sauf la première), c'est rightRenderer, qui lui n'a pas ce traitement de choix sur la parité...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/05/2015, 07h39
  2. [XL-2010] Colorier une ligne sur deux les lignes de même valeur
    Par ggvad dans le forum Excel
    Réponses: 1
    Dernier message: 17/12/2014, 16h28
  3. Colorier une ligne sur deux d'un JXTable
    Par paesportcomputing dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 03/02/2011, 14h51
  4. [Rave 5.0-Delphi 7] Griser une ligne sur deux
    Par Frank dans le forum Rave
    Réponses: 5
    Dernier message: 09/08/2006, 09h03
  5. coloriser une ligne sur deux
    Par the0livier dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2005, 10h54

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