7
votes

SWT: Définir des boutons radio par programme

Lorsque je crée quelques boutons radio ( Nouveau bouton (parent, swt.radio) ) et définissez la sélection par programme à l'aide de radiobutton5.Setselection (true) 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.


0 commentaires

3 Réponses :


9
votes

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);
}


0 commentaires

-2
votes

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?


1 commentaires

Même s'ils sont sur le même parent et que le parent n'est pas créé avec no_radio_group , 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 .



1
votes

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");


0 commentaires