質問

私はラジオボタン(new Button(parent, SWT.RADIO))のカップルを作成し、プログラムの選択を設定すると、

radioButton5.setSelection(true)を使用して、以前に選択したラジオボタンは、選択されたままになります。私は彼らの選択を解除するには、同じグループの他のすべてのラジオボタンを反復処理するために持っているか、単純な選択肢はありますか?事前に感謝します。

役に立ちましたか?

解決

残念ながら、あなたはすべてのオプションを反復処理する必要があります。初めてお使いのUIは、BN_CLICKEDイベントが発生起動したとき。あなたのShellまたはGroupやラジオボタンのどんなコンテナがSWT.NO_RADIO_GROUPオプションで作成されていない場合は、以下のメソッドが呼び出されます:

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

だから、基本的に自分自身を日食は、すべてのラジオボタンを反復処理し、それらの状態を切り替えるに依存します。

たびに手動でBN_CLICKEDイベントが発生、ひいては自動トグルされたラジオボタンを選択します。

あなたはbutton.setSelection(boolean)を使用する場合は、次に何BN_CLICKEDイベントがトリガされません。したがって、ラジオボタンのない自動トグル

詳細はorg.eclipse.swt.widgets.Buttonクラスを確認します。

他のヒント

同じ複合内のラジオボタンは、グループとして作用します。一つだけのラジオボタンは、一度に選択されます。ここでは実施例である。

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

これは自動的に行われなければなりません。どのようにボタンを作成していますか?彼らは、同じ親にありますか?親がNO_RADIO_GROUPスタイルを使用していますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top