JTable : garder la couleur de sélection d'une case.

exdark Messages postés 1 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 11 juillet 2008 - 11 juil. 2008 à 11:31
tlaloctzin Messages postés 136 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 12 septembre 2013 - 15 juil. 2008 à 15:14
Bonjour  tout le monde,

C'est la première fois que je viens demander de l'aide sur ce forum mais là je sèche complètement!

J'ai vu de nombreux post qui traitent du changement de la couleur d'une cellule sélectionnée d'une JTable mais aucun ne répond à ma question. Une fois que la couleur de la case a changé en cliquant dessus (ça c'est bon j'ai fait) comment on fait pour que la cellule reste colorée quand je clique ensuite sur une autre case.

Voici le code de mon TableCellRenderer: la case sélectionnée est en vert et les autres sont en blanc.

public class CustomTableCellRenderer extends DefaultTableCellRenderer
    {
                public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column)
        {
                    
            JLabel jlabel = new JLabel();
                        
           jlabel = (JLabel)super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);        
          
          
           
        if(row==table.getSelectedRow()&& column==table.getSelectedColumn()){
     
            setBackground(Color.GREEN);
           
                }     
     
        else   {
           
           
            setBackground(Color.WHITE);
                }

        
        return jlabel;
    }
       
    }
}

J'espère que quelqu'un répondra à ma question !!

Merci
A voir également:

2 réponses

uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
12 juil. 2008 à 07:29
Je ne comprends pas ce que tu veus faire exactement. Pourquoi tu ne fais pas simplement:
jTable1.setSelectionBackground(Color.GREEN);
sans utiliser le "CustomTableCellRenderer" ?
(à part ça, tu n'as pas besoin d'aller chercher le JLabel, car DefaultTableCellRenderer lui-même est le JLabel, et tu peus faire "return this;")
0
tlaloctzin Messages postés 136 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 12 septembre 2013 3
15 juil. 2008 à 15:14
Sinon tu enleves juste ton

else{
setBackground(....)
}

ca resteras de la couleur voulue

Il vaut mieu être riche et en bonne santé que pauvre et malade .
0
Rejoignez-nous