当我创建几个单选按钮(new Button(parent, SWT.RADIO)
)并使用radioButton5.setSelection(true)
以编程方式设置选择时,之前选定的单选按钮也保持选中状态。我是否必须遍历同一组中的所有其他单选按钮以取消选择它们,还是有更简单的选择?提前致谢。SWT:以编程方式设置单选按钮
7
A
回答
6
不幸的是,你必须迭代所有的选项。当您的用户界面第一次出现时,会触发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);
}
所以基本上Eclipse本身取决于遍历所有的单选按钮和切换它们的状态。
每次手动选择一个单选按钮时,BN_CLICKED
事件将被触发,因此会自动切换。
当您使用button.setSelection(boolean)
时,则不会触发BN_CLICKED
事件。因此不会自动切换单选按钮。
检查org.eclipse.swt.widgets.Button
类以获取更多详细信息。
-2
这应该会自动发生。你如何创建按钮?他们在同一个父母身上吗?父母是否使用NO_RADIO_GROUP风格?
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");
相关问题
- 1. 设置WPF按钮式编程方式
- 2. 以编程方式设置按钮对齐方式
- 3. 如何以编程方式设置按钮位置?
- 4. 以编程方式选择一个MFC单选按钮
- 5. 以编程方式在android中单击单选按钮?
- 6. 以编程方式设置复选框
- 7. Angular 2 md-单选按钮设置值编程式
- 8. iPad - 以编程方式将文本设置为按钮
- 9. c#以编程方式设置值按钮。
- 10. Android - 如何以编程方式设置按钮颜色
- 11. 在网格中以编程方式设置按钮大小
- 12. 如何以编程方式设置按钮文本?
- 13. 如何设置按钮以编程方式点击
- 14. 以编程方式设置按钮的边距
- 15. Android以编程方式设置按钮布局
- 16. 以编程方式设置模板化按钮的VisualStates
- 17. 以编程方式合并单选按钮和图像浏览
- 18. 以编程方式创建一个Cocoa单选按钮
- 19. React渲染,以编程方式更改单选按钮
- 20. iPhone:以编程方式按下按钮
- 21. 以编程方式按下按钮
- 22. Flex 4 - 以编程方式将按钮单击处理函数设置为null
- 23. 如何以编程方式设置单选按钮,并使用js选择选项
- 24. 以编程方式设置iPhone设置
- 25. WPF设置老式的单选按钮
- 26. 以编程方式为编程创建的按钮设置可绘制背景
- 27. jQuery设置单选按钮
- 28. 以编程方式滚动SWT表
- 29. 以编程方式添加按钮
- 30. Android以编程方式声明按钮?
即使它们位于同一父级,并且父级未使用“NO_RADIO_GROUP”创建,它们仍显示问题中提到的行为。该行为至少在使用eclipse 3.6的Windows Vista上。如果它在其他OS或Eclipse版本上工作,那么它的** SWT Bug **。 – Favonius 2011-04-30 03:40:17