J'utilise:
CheckboxGroup cg = new CheckboxGroup();
Checkbox c1 = new Checkbox("A", false, cg);
Checkbox c2 = new Checkbox("B", false, cg);
Checkbox c3 = new Checkbox("C", true, cg);
Pour créer un groupe de trois cases à cocher. Maintenant, je veux vérifier lequel d’entre eux est coché. J'utilise:
if (c1.isSelected()) { }
mais cela donne The method isSelected() is undefined for the type Checkbox
... La solution recommandée consiste à ajouter le cast au c1. Je le fais aussi et cela donne Cannot cast from Checkbox to AbstractButton
... Encore une fois, comment puis-je vérifier si une case à cocher est cochée?
Utilisez getState ()
boolean checked = c1.getState();
if(c1.getState()) {
//c1 is checked
} else if (c2.getState()) {
//
}
OU
Checkbox cb = cg.getSelectedCheckbox();
if(null != cb) {
//not checked
} else {
System.out.println(cb.getLabel() + " is checked");
}
Vous pouvez utiliser Checkbox::getState()
ou (comme indiqué dans le commentaire) CheckboxGroup#getSelectedCheckbox()
La première de toutes les Java.awt.Checkbox n'a pas de méthode .isSelected () dans sa super classe, qui est Java.awt.Component.
https://docs.Oracle.com/javase/7/docs/api/Java/awt/Checkbox.html
vérifiez le lien ci-dessus pour les méthodes héritées de la classe Java.awt.Component.
La seconde méthode .isSelected () peut être utilisée si vous utilisez JCheckBox à partir de javax.swing.JComponent; mais pas CheckBox of AWT ...
veuillez passer par le lien ci-dessous .. et vous pouvez trouver .isSelected () qui est hérité de javax.swing.AbstractButton;
https://docs.Oracle.com/javase/7/docs/api/javax/swing/JCheckBox.html
à en juger par votre utilisation de isSelected
, j'ai conclu que vous aviez l'une des deux erreurs suivantes:
c1.getState()
et non isSelected()
RadioBox
au lieu de CheckBox
et vous pouvez ensuite utiliser la méthode isSelected()
. vérifier ici sur les deuxvous pouvez essayer ce code
// check is ckeck box id
if (check.isSelected()) {
// your code for checked;
} else {
// our code for not checked;
}