Bonsoir à tous
J evoudrais récupéré la valeur d'un checkbox se trouvant dans un jTable
le code suivant me génère une erreur:
boolean sNumsd=(boolean)jTable1.getValueAt(2,2).equals(jTable1);
y'aurait il un moyen de le réaliser
Merci
Bonsoir à tous
J evoudrais récupéré la valeur d'un checkbox se trouvant dans un jTable
le code suivant me génère une erreur:
boolean sNumsd=(boolean)jTable1.getValueAt(2,2).equals(jTable1);
y'aurait il un moyen de le réaliser
Merci
si ton tableau affiche une checkbox, c'est qu'il contient un booleen.
qu'est ce que tu as voulu faire avec ca: .equals(jTable1) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 bollean b = (boolean)jTable1.getValueAt(2,2);
Bonjour à tous,
Merci pour ton aide eclisia, seulement lorsque j'écris le code suivant
int k=0;
boolean b=true;
while (b)
{
sLib=(String)jTable1.getValueAt(k,0).toString();
boolean b1=(boolean)jTable1.getValueAt(k,1);
boolean b2=(boolean)jTable1.getValueAt(k,2);
boolean b3=(boolean)jTable1.getValueAt(k,3);
boolean b4=(boolean)jTable1.getValueAt(k,4);
// Ici il y'aura une insertion dans la BD
k=k+1;
b=k<nbreLigne;
}
le compilateur me dit:
java.lang.object required boolean at line 245, colum 41, correspodant à la première ligne où se situr le code à savoir
boolean b1=(boolean)jTable1.getValueAt(k,1);
Pour être plus claire, voici le chargement de ma jTable qui provien d'un requête. l'affichage ne pose pas de problème.J'utilise jBuilder 2005.
try {
PreparedStatement st = pst.prepareStatement(sql);
// st.executeQuery();
ResultSet Valeur = st.executeQuery();
int i, j,nbr;
i = 0;
j = 0;
// nbr=Valeur.
boolean bL = Valeur.next();
data[0][0]=Valeur.getString("LIBELLE");
data[0][1]=Boolean.FALSE;
data[0][2]=Boolean.FALSE;
data[0][3]=Boolean.FALSE;
data[0][4]=Boolean.FALSE;
i=1;
bL=Valeur.next();
while (bL){
for (j=0; j<5; j++){
data[i][j]=Valeur.getString(j+1);
}
bL=Valeur.next();
i=i+1;
}
}
que puis-je faire??
de petite amélioration dabord :
sLib=(String)jTable1.getValueAt(k,0).toString();
-> sLib = jTable1.getValueAt(k,0).toString();
pas besoin de faire un (String) devant vu qu'a la fin tu fais .toString() donc on est sur d'avoir une chaine.
k=k+1;
-> k++;
incrementation de 1, c'est fait pour ca.
pour ton erreur :
data[0][1]=Boolean.FALSE;
boolean b1=(boolean)jTable1.getValueAt(k,1);
essai d'afficher la classe de l'objet dans la cellule avec.
System.out.println( jTable1.getValue(k,1).class ); ou .getClass()
je pense que ca va renvoyer un Boolean et pas un boolean.
ps : j'ai pas d'editeur sous la main pour verifier mes dires ^^
j'ai essayé
data[i][j]=(boolean)Valeur.getClass();
et
data[i][j]=(boolean)Valeur.Class();
mais j'ai toujours des erreurs;
Finalement avec le code ci-dessous
boolean b1=(boolean)jTable1.getValueAt(k,1).equals(jTable1);
j'arrive à avoir la valeur. le seul problème actuellement c'est que le changement de d'état des checkbox n'est pas pris en compte. c'est tours à false, valeur initiale. Comment pouvoir détecter le changement d'état du chekbox ?
j'ai lu qu'il fallait implémenter le TableModelListener, comment le faire?
Merci
En ajoutant un listener à ton JCheckBox :Envoyé par fblaiso
Voir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part monCheckBox.addActionListener(new MonListener());
How to Write an Action Listener
Partager