Lorsque je crée quelques boutons radio ( Nouveau bouton (parent, swt.radio) code>) et définissez la sélection par programme à l'aide de
radiobutton5.Setselection (true) code> le précédent Le bouton radio sélectionné reste également sélectionné. Dois-je itération sur tous les autres boutons radio du même groupe pour les désélectionner ou y a-t-il une alternative plus simple? Merci d'avance. P>
3 Réponses :
Malheureusement, vous devez parcourir toutes les options. Pour la première fois lorsque votre interface utilisateur est arrivée, un événement code> bn_clicked est tiré. Si votre coquille code> ou
groupe code> ou quel que soit le conteneur de boutons radio non créés avec
SWT.NO_RADIO_GROUP CODE> Option, la méthode suivante est appelée:
void selectRadio ()
{
Control [] children = parent._getChildren ();
for (int i=0; i<children.length; i++) {
Control child = children [i];
if (this != child) child.setRadioSelection (false);
}
setSelection (true);
}
Cela devrait arriver automatiquement. Comment créez-vous les boutons? Sont-ils sur le même parent? Est le parent utilisant no_radio_group style? P>
Même s'ils sont sur le même parent et que le parent n'est pas créé avec no_radio_group code>, ils présentent toujours le comportement mentionné dans la question. Le comportement est au moins sur Windows Vista avec Eclipse 3.6. Si elle travaille sur d'autres versions OS ou Eclipse, son bug SWT B>.
Les boutons radio dans le même composite seraient en tant que groupe. Un seul bouton radio sera sélectionné à la fois. Voici un exemple de travail:
Composite composite = new Composite(parent, SWT.NONE); Button btnCopy = new Button(composite, SWT.RADIO); btnCopy.setText("Copy Element"); btnCopy.setSelection(false); Button btnMove = new Button(composite, SWT.RADIO); btnMove.setText("Move Element");