К сожалению, вам придется перебирать все параметры.В первый раз, когда ваш пользовательский интерфейс появляется, происходит событие 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
для более подробной информации.