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 :

Colorier Cellule / ligne sélectionnée dans JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de Sebou77
    Inscrit en
    Mars 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 212
    Par défaut Colorier Cellule / ligne sélectionnée dans JTable
    Bonjour à tous,

    voilà j'utilise un JTable pour afficher le contenu d'une base de donnée, mais il y a 2 choses que je n'arrive pas à faire :

    -Colorier une cellule, j'arrive à colorier tout le tableau avec setFontColor() mais pas une cellule en particulier

    -Et savoir quelle ligne est selectionnée par l'utilisateur, faut il utiliser un ActionMouseListener() ou c'est vraiment en rapport avec le JTable ?

    Merci beaucoup à tous

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par Sebou77
    -Colorier une cellule, j'arrive à colorier tout le tableau avec setFontColor() mais pas une cellule en particulier
    Il te faut définir un tableCellRenderer et définir quelles sont les lignes que tu veut colorier. Si tu as besoin d'un exemple, tu dois pouvoir en trouver sur le forum, sinon demande.

    Citation Envoyé par Sebou77
    -Et savoir quelle ligne est selectionnée par l'utilisateur, faut il utiliser un ActionMouseListener() ou c'est vraiment en rapport avec le JTable ?
    Tout simplement en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    taTable.getSelectedColumn() //Récupère la colonne
    taTable.getSelectedRow(); //récupère la ligne

  3. #3
    Membre expérimenté Avatar de Sebou77
    Inscrit en
    Mars 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 212
    Par défaut
    Merci beaucoup pour ta réponse !

    Alors pour le listener je viens de le faire avec un MouseListener et ça fonctionne, mais ta solution à l'air beaucoup plus simple, je vais la tester

    Pour les couleurs, j'ai déja défini un tableCellRenderer mais je ne vois pas comment lui dire de colorier une colonne
    Un petit exemple svp ?

    Encore merci

  4. #4
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    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
    public class MyTableCellRenderer extends DefaultTableCellRenderer  { 
     private static final long serialVersionUID = 1377976327643240688L;
     
     public MyTableCellRenderer() { 
       super(); 
     } 
     
     public Component getTableCellRendererComponent(JTable table,Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
     
      if (column == 1) setBackground(Color.red); //Ca va te colorier en rouge tous les cellules de la colonne 1
     if(row == 2)setBackground(Color.black); //Ca va te colorier en noir toutes les cellules de la ligne 2
     
      super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
     
      return this; 
     }
    }
    Voilà, c'est pas très compliqué comme tu le vois

  5. #5
    Membre expérimenté Avatar de Sebou77
    Inscrit en
    Mars 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 212
    Par défaut
    Merci de ton aide, mais la seule chose que j'obtient dans la cellule c'est ça :
    java.awt.Color[r=255,g=0,b=0]
    Donc il voit bien que c'est une couleur (ici du rouge), mais il ne l'a colorie pas :/
    J'ai mis exactement ce que tu m'a donné, et j'y fais appel de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TupleModel fm = new TupleModel(Tuples, Champs); // class TupleModel extends AbstractTableModel
    jt = new JTable(fm); // La JTable
    jsp = new JScrollPane(jt); // JScrollPane qui contient la JTable
    jt.setDefaultRenderer(Color.class, new ColorRenderer());// la class ColorRenderer correspond à ce que Witchounet à posté
    J'ai essayer de modifier pas mal de chose mais je ne trouve pas, une idée d'ou ça peut venir ?
    Encore merci

  6. #6
    Membre confirmé Avatar de zoullou
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Colorier une ligne d'une JTable si sélectionnée
    Par Noizet dans le forum Composants
    Réponses: 0
    Dernier message: 29/09/2008, 12h58
  2. Ligne caché dans JTable
    Par devAd dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 22/11/2006, 11h47
  3. Lignes sélectionnées dans une liste
    Par nellynew dans le forum Access
    Réponses: 2
    Dernier message: 26/05/2006, 09h02
  4. Récupérer la ligne sélectionnée dans un ListBox
    Par jmjmjm dans le forum Composants VCL
    Réponses: 3
    Dernier message: 11/11/2005, 22h13
  5. ligne sélectionnée dans une dbGrid
    Par RBIK dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/07/2004, 17h13

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