Colorier une ligne d'une JTable si sélectionnée

cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 - 29 sept. 2008 à 10:57
cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 - 29 sept. 2008 à 11:10
Hello,
J'ai créé une JTable, la première colonne contient des radiosBouttons et j'aimerai quand on séléctionne une ligne à l'aide du radio Boutton cette ligne ce colorie.

J'ai essayé ceci, mais la fonction backgroung(Color.color) ne fonctionne pas et ça fonctionne que la première fois que je sélectionne ma ligne après il ne change plus la couleur du texte.

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        Component contenu = super.getTableCellRendererComponent(table, value,isSelected, hasFocus, row, column);
       
        if (!isSelected) {
            if (value instanceof JRadioButton) {
                JRadioButton bouton = new JRadioButton();
                BG.add(bouton);
                contenu = bouton;
            } else {
                contenu = new JLabel(value.toString(), CENTER);
            }           
        } else {
            if (value instanceof JRadioButton) {
                JRadioButton bouton = new JRadioButton();
                BG.add(bouton);
                contenu = bouton;
            } else {
                contenu = new JLabel(value.toString(), CENTER);
            }
            contenu.setBackground(Color.LIGHT_GRAY);
            contenu.setForeground(Color.BLUE);
        }
        return contenu;
}

Est-ce que quelqu'un pourrait me dire ce qui pose problème et comment je peux faire pour que ça fonctionne ?

Merci de votre aide!

"NoiZet"

1 réponse

cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 3
29 sept. 2008 à 11:10
J'ai trouvé comment faire pour que le setBackground fonctionne : label.setOpaque(true);

Par contre toujours pas trouvé de réponse pour la sélection !
Des idées

"NoiZet"
0
Rejoignez-nous