SWT:以编程方式设置单选按钮

Mot*_*Mot 7 swt radio-group radio-button

当我创建几个单选按钮(new Button(parent, SWT.RADIO))并使用radioButton5.setSelection(true)先前选择的单选按钮以编程方式设置选择时,也保持选中状态.我是否必须迭代同一组中的所有其他单选按钮以取消选择它们还是有更简单的替代方案?提前致谢.

Fav*_*ius 8

不幸的是,你必须遍历所有选项.当您的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);
}
Run Code Online (Sandbox Code Playgroud)

因此,本质上eclipse本身取决于迭代所有单选按钮并切换其状态.

每次手动选择单选按钮时,BN_CLICKED都会触发事件,从而自动切换.

使用时,button.setSelection(boolean)不会BN_CLICKED触发任何事件.因此没有自动切换单选按钮.

查看org.eclipse.swt.widgets.Button课程了解更多详情.