Checkbox dans une jTable

Signaler
Messages postés
7
Date d'inscription
lundi 18 novembre 2013
Statut
Membre
Dernière intervention
7 décembre 2013
-
Messages postés
7
Date d'inscription
lundi 18 novembre 2013
Statut
Membre
Dernière intervention
7 décembre 2013
-
Bonjour, les amis.
J'ai une jTable avec des columns contenant des CheckBox .
quand j'ai affecté à cette jTable un DefaultTableModel les CheckBox sont désparus. comment je peux garder les CheckBox dans ce cas ??

2 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
304
Salut,

Tu ne peux pas dans ce cas affecter un defaultTableModel, les checkBox utilisent le modèle de la JTable, si tu le modifies, tu supprimes les checkBoxes.

Dans ce cas, il faut que tu fasses un extends de DefaultTableModel sur la classe qui te permet de créer le modele de ta JTable.

Si tu veux montre moi quelques lignes de code, je te dirai comment t'en sortir.
Messages postés
7
Date d'inscription
lundi 18 novembre 2013
Statut
Membre
Dernière intervention
7 décembre 2013

Merci cs_Julien39.
Je vais te donner l'idée générale.
Dans mon jForm j'ai un jComboBox (jComboBox1) pour sélectionner un service, et une jTable (jTgarde) pour afficher les NomPrenom et Matricule (2 premiers collumn) des personnes appartient à ce service, et dans les 5 derniers collumns j'ai intégrer des CheckBox pour marqué les gardes effectuer.
Mais j'ai rencontrer un problème quand je sélectionne un service jTable est charger mais il ya des lignes vides de plus, j'essaye de les effaces mais j'arrive pas.alors j'ai utiliser DefaultTableModel pour initialisé ma jTable avant le chargement de jTable. J'ai met le code suivant dans jComboBox1ActionPerformed() :

  private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
int j=0;


String data[][]=new String[0][0];
jTgarde.setModel(new DefaultTableModel(data,new String []{"Matricule ","Nom et Prénom ","G-M ","G-W(Matin) ","G-WK(AP-M) ","G-F(Matin) ","G-F(AP-M) "}));
try{
//Remplir 'ResultSet' par les Noms et leurs Matricule à l'aide d'une requête passer en paramètre le service sélectionné:

rs=cn.ExectSql("select matricule,nomPrenom from recrutment where service='"+jComboBox1.getSelectedItem().toString()+"'");

//Ajouter les ligne dans jTable(jTgarde)aussi Remplir les 2 premier collumn (Nom et Matricule) du jTable:

while(rs.next()){
Object ligne[]= new Object[1];
DefaultTableModel enregistrement=(DefaultTableModel)jTgarde.getModel();
enregistrement.addRow(ligne);
jTgarde.getModel().setValueAt(rs.getInt(1), j, 0);
jTgarde.getModel().setValueAt(rs.getString(2), j, 1);
j++;
}
}catch(Exception ex){
JOptionPane.showMessageDialog(this, "1");
}

Merci infiniment.