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 les couleurs sur un double clique


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Par défaut [jTable] changer les couleurs sur un double clique
    bonjour
    apres avoir examiné tout les post concernant la modification des couleurs d'une lignes je n'arrive pas à résoudre mon problème :

    j'affiche une Jtable et je voudrais pouvoir changer la couleur de differentes lignes en double cliquant dessus, mais il ne se passe rien ! je ne pense pas avori compris toutes les subtilités...
    Je définie donc un tableCellRenderer que j'appel lors d'un double clique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public void mouseClicked(MouseEvent m) {
    		if (m.getClickCount() == 2) {
                            jTable2.setDefaultRenderer(Color.class, new ColorRenderer());
    	}
        }
    la mon code pour le cellrenderer :

    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
     
    class ColorRenderer extends DefaultTableCellRenderer {
     
         private static final long serialVersionUID = 1L;
     
         public ColorRenderer() {
          super();
            }
     
         public Component getTableCellRendererComponent(JTable table, Object color, boolean isSelected, boolean hasFocus,int row, int column) {
     
          Component comp = super.getTableCellRendererComponent(table, color, isSelected, hasFocus, row, column);
     
               setBackground(Color.RED); 
     
     
          return this;
         }
        }
    mais il n'y a rien qui s'affiche, j'ai essayé differentes combinaison a la place du setBackground(Color.RED); mais rien n'y fait
    (note : je ne cherche pas pour le moment a colorier toute ma ligne, mais au moins a ce qu'il se passe quelque chose lorsque je double clique dessus)
    merci d'avance pour toute aide fournie

  2. #2
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Déjà, as tu vérifier que tu as bien fait addMouseListener sur ta JTable ?
    Ensuite, si au début tu veux simplement "vérifier" que l'évenement à lui, rien de mieux qu'un System.out.println bien placé... Un pti exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void mouseClicked(MouseEvent m) {
    		if (m.getClickCount() == 2) {
                            System.out.println("ça marche !!!!");
                            jTable2.setDefaultRenderer(Color.class, new ColorRenderer());
    	}
        }
    Comme ça, si "ça marche !!!!" s'affiche dans la console, tu peut être sur que ta méthode mouseClicked est invoqué, et que ta condition est satisfaite.
    Je te conseille quand tu commence un code nouveau et que tu n'as pas le résultat espéré de procédé ainsi : tu remontes à la source du problème (genre tu appeles la méthode operation() mais rien ne se passe), et tu fais des system.out.println(), en passant pas tous les 'noeuds' de ton code.
    Ainsi, tu sais quoi est exécuté quand !
    bonne chance !

  3. #3
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Et tu rentres dans getTableCellRendererComponent()?

    Juste au cas où, le code que t'as mis dans cette méthode, c'est temporaire? Parce que sinon, il me semble que tu vas colorier toutes les lignes de ta JTable et non pas juste une ligne...

  4. #4
    Membre confirmé Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Par défaut
    non en effet, je viens de m'apercevoir que je ne rentre pas dans "getTableCellRendererComponent"
    je sais que la je vais colorier toute la table comme je l'explique dans mon 1er post : "(note : je ne cherche pas pour le moment a colorier toute ma ligne, mais au moins a ce qu'il se passe quelque chose lorsque je double clique dessus)"

  5. #5
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Je pense que le problème vient du paramètre Color.class dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jTable2.setDefaultRenderer(Color.class, new ColorRenderer());
    Mais je vais vérifier...

    [EDIT]
    C'est bien ce qu'il me semblait : si tu fais ça, ça va appliquer ton renderer à la colonne qui contiendra des objets de type Color.
    Or j'imagine que toi tu n'as pas ce genre de colonne, tu veux juste changer le fond de ta ligne qui doit contenir des labels(?) par défaut.

  6. #6
    Membre confirmé Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Par défaut
    j'ai lu pas mal de post concernant ce probleme pour changer les couleurs des tuples pour les jtable, je pensais avoir a peu pres comprisle fonctionnement mais non
    le code de la classe ColorRenderer est un copier collé de l'un de ces post

  7. #7
    Membre confirmé Avatar de lkryss
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 92
    Par défaut
    ma jtable contient des labels (string?) et des jcheckbox

    edit :
    yes ca marche ^^
    en remplacant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jTable2.setDefaultRenderer(Color.class, new ColorRenderer());
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jTable2.setDefaultRenderer(String.class, new ColorRenderer());
    mes lignes se colorient en rouge
    il ne me reste plus qu'a modifier mon code pour ne colorier que la ligne qui m'interesse
    merci a toi seiryujay

    (je ne close pas le sujet si a tout hasard je galere pour ne colorier qu'une ligne )

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

Discussions similaires

  1. Changer la couleur sur clique d'un onglet dans un menu
    Par nadiaflamingenierie dans le forum Général JavaScript
    Réponses: 44
    Dernier message: 18/04/2008, 15h56
  2. Aide pour changer de couleur sur les primitifs GLUT
    Par romainhoarau2764 dans le forum GLUT
    Réponses: 3
    Dernier message: 19/03/2005, 13h30
  3. [JTable] Changer les données
    Par norkius dans le forum Composants
    Réponses: 12
    Dernier message: 27/01/2005, 14h51
  4. [Forms] changer les couleurs
    Par Nounoursonne dans le forum Forms
    Réponses: 11
    Dernier message: 02/04/2004, 09h40
  5. Changer les couleurs de la palette avec du RGB
    Par le mage tophinus dans le forum x86 16-bits
    Réponses: 11
    Dernier message: 13/01/2003, 08h55

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