SWT:プログラムでセットラジオボタン
-
27-10-2019 - |
質問
私はラジオボタン(
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スタイルを使用していますか?
所属していません StackOverflow