RadioButton dans une JTable [Résolu]

cs_Noizet 91 Messages postés mercredi 9 avril 2008Date d'inscription 24 octobre 2008 Dernière intervention - 10 sept. 2008 à 11:30 - Dernière réponse : cs_Noizet 91 Messages postés mercredi 9 avril 2008Date d'inscription 24 octobre 2008 Dernière intervention
- 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"
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_Noizet 91 Messages postés mercredi 9 avril 2008Date d'inscription 24 octobre 2008 Dernière intervention - 10 sept. 2008 à 13:30
3
Merci
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;
    }

Merci cs_Noizet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de cs_Noizet
cs_Noizet 91 Messages postés mercredi 9 avril 2008Date d'inscription 24 octobre 2008 Dernière intervention - 10 sept. 2008 à 11:32
0
Merci
J'ai oublié de préciser, à l'écran, les radios boutons apparaissent bien et ils sont sélectionnes!

"NoiZet"
Commenter la réponse de cs_Noizet

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.