RadioButton dans une JTable

Résolu
cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 - 10 sept. 2008 à 11:30
cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 - 10 sept. 2008 à 13:30
Hello,

J'ai créer une JTable qui contient des RadioButton dans la première colonne. Ces radios boutons sont séléctionné par défaut.

Si je ne décoche pas le bouton pour le recocher, il le voit comme étant nulle.

Quelqu'un aurait une idée de pourquoi il le voit nulle la première fois et comment je peux y remédier?

Code de mon propre tableCell :

public class TablePerso extends DefaultTableCellRenderer implements TableCellEditor {
...
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        JComponent contenu = null;
        if (value == null) {
            JRadioButton bouton = new JRadioButton();
            bouton.setSelected(true);
            table.setValueAt(bouton, row, column);
            contenu = bouton;
    } else{
            contenu = new JLabel(value.toString(), CENTER);
        }
        return contenu;
    }
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        JComponent contenu = null;
        if (value == null) {
            JRadioButton bouton = new JRadioButton();
            bouton.setSelected(true);
            contenu = bouton;
    } else{
            contenu = new JLabel(value.toString(), CENTER);
        }
       
        return contenu;
    }
}

Code qui créer la JTable :
 Object[][] donnee = {{null,"ok","ok"},{null,"ok","ok"},{null,"ok","ok"}};
                        Object[] nomColonne = {"","essai1","essai2"};
                        tableau = new JTable(new TableModelPerso(donnee,nomColonne));
                        tableau.setDefaultRenderer(Object.class, new TableCellPerso());
                        tableau.getColumnModel().getColumn(0).setCellEditor(new TableCellPerso());

TableModelPerso extends DefaultTableModel !

Merci de votre aide !!

"NoiZet"

2 réponses

cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 3
10 sept. 2008 à 13:30
Problème résolu :

Je créer directement le bouton dans mon contenu de ma JTable.

Puis j'ai modifié légérement le code de ces deux méthodes :

public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        Component contenu = null;
        if (value instanceof JRadioButton) {
            JRadioButton bouton = (JRadioButton)value;
            contenu = bouton;
        }
        return contenu;
    }

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        Component contenu = null;
        if (value instanceof JRadioButton) {
            contenu = (Component)value;
        }

        return contenu;
    }
3
cs_Noizet Messages postés 91 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 24 octobre 2008 3
10 sept. 2008 à 11:32
J'ai oublié de préciser, à l'écran, les radios boutons apparaissent bien et ils sont sélectionnes!

"NoiZet"
0
Rejoignez-nous