Checkbox dans une jTable

sours2 Messages postés 6 Date d'inscription lundi 18 novembre 2013 Statut Membre Dernière intervention 7 décembre 2013 - Modifié par cs_Julien39 le 3/04/2014 à 14:07
sours2 Messages postés 6 Date d'inscription lundi 18 novembre 2013 Statut Membre Dernière intervention 7 décembre 2013 - 19 nov. 2013 à 20:01
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

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 372
19 nov. 2013 à 08:40
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.
0
sours2 Messages postés 6 Date d'inscription lundi 18 novembre 2013 Statut Membre Dernière intervention 7 décembre 2013
19 nov. 2013 à 20:01
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.
0
Rejoignez-nous