7

いくつかのラジオボタン()を作成し、以前に選択したラジオボタンnew Button(parent, SWT.RADIO)を使用してプログラムで選択を設定すると、選択されたままになります。radioButton5.setSelection(true)同じグループの他のすべてのラジオボタンを繰り返して選択を解除する必要がありますか、それとももっと簡単な方法がありますか?前もって感謝します。

4

3 に答える 3

9

残念ながら、すべてのオプションを繰り返す必要があります。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詳細については、クラスを確認してください。

于 2011-04-29T22:56:44.167 に答える
1

同じコンポジット内のラジオボタンは、グループとして機能します。一度に選択されるラジオボタンは1つだけです。実例は次のとおりです。

    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");
于 2013-09-17T13:35:46.990 に答える
-2

これは自動的に発生するはずです。ボタンはどのように作成していますか?彼らは同じ親にいますか?親はNO_RADIO_GROUPスタイルを使用していますか?

于 2011-04-30T02:56:28.040 に答える