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 : modifier la couleur d'un ligne une fois qu'elle a été selectionnée


Sujet :

Composants Java

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 42
    Points
    42
    Par défaut JTable : modifier la couleur d'un ligne une fois qu'elle a été selectionnée
    bonjour,
    Dans une JTable comment peut on faire pour changer la couleur (background)d'une ligne une fois que celle si a ete selectionee.

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

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Oui, c'est possibe, mais pour cela, il va te falloir définir ton propre renderer, ca va te donner quelque chose comme ca :

    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
    public class MyTableCellRenderer extends DefaultTableCellRenderer  { 
    	public MyTableCellRenderer() { 
    	  super(); 
    	} 
     
    	public Component getTableCellRendererComponent(JTable table,Object value, boolean isSelected, boolean hasFocus, 
    int row, int column) { 
     
    		if(isSelected){
    			this.setBackground(new Color(r,g,b);
    		}else{
    			this.setBackground(table.getBackground());
    		}
     
    		super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
     
    		return this; 
    	}
    }

  3. #3
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    par defaut la ligne qui a le focus change de couleur. non ?

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

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par bbclone
    par defaut la ligne qui a le focus change de couleur. non ?
    Oui elle change de couleur, mais tu peut pas paramètrer cette couleur il me semble.

  5. #5
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    ben oui tu peut.
    par exemple en changeant juste quelques valeurs de ton UIManager si tu veut que c'est pour toute les tables de ton application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UIManager.put("Table.background", new Color(r, g, b));
    UIManager.put("Table.focusCellBackground", new Color(r, g, b));
    UIManager.put("Table.focusCellForeground", new Color(r, g, b));
    ...

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

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par bbclone
    ben oui tu peut.
    par exemple en changeant juste quelques valeurs de ton UIManager si tu veut que c'est pour toute les tables de ton application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UIManager.put("Table.background", new Color(r, g, b));
    UIManager.put("Table.focusCellBackground", new Color(r, g, b));
    UIManager.put("Table.focusCellForeground", new Color(r, g, b));
    ...
    Ok autant pour moi, c'est bon à savoir. Par contre, ma solution reste valable si tu veut que ce soit différent pour chaque JTable.

Discussions similaires

  1. [JTable] Modifier la couleur d'une cellule
    Par Auteur dans le forum Composants
    Réponses: 4
    Dernier message: 05/06/2010, 14h47
  2. modifier la couleur de fond d'une ligne de gridview
    Par falifalibe2 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 16/02/2010, 08h50
  3. c# Comment modifier la couleur de fond d'une statusBar
    Par padodanle51 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/03/2006, 17h36
  4. [JTable] Modifier la couleur de fond d'une ligne
    Par joes_bushi dans le forum Composants
    Réponses: 2
    Dernier message: 20/09/2005, 12h13
  5. [JTable] Gérer la couleur de chaque ligne
    Par kerkennah dans le forum Composants
    Réponses: 2
    Dernier message: 27/05/2005, 11h56

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