我正在建立一个两支球队交手的比赛计分系统。每手牌都有一个赢家,但是在打完手之前,赢家是未知的。我通过单击单选按钮显示谁获胜。如果一个团队的单选按钮被“点击”,那么我以编程方式“取消点击”另一个按钮。我只在下面展示了一只手,但你可以有不止一只手,它们被添加到第一只手的下方(以编程方式添加另一个复合b及其组)。
注意:第二只手和后续手确实在创建时关闭了两个单选按钮。
问题是创建的第一个单选按钮(左组)始终处于选中状态,我无法将其关闭。如果我点击右侧面板中的获胜者,那么我可以在程序控制下关闭左侧面板中的获胜者,反之亦然。
但是我不能在两个按钮都关闭的情况下开始。
后台某处的 SWT 似乎打开了表单中创建的第一个单选按钮,并且不会让它关闭,除非表单中其他位置的另一个单选按钮已打开,无论分层或单选分组如何。我通过打开表单中的最后一个单选按钮对此进行了测试,果然我可以关闭第一个单选按钮。
所有单选按钮的创建代码/组是使用以下内容创建的SWT.NO_RADIO_GROUP:
ivWinHandRadio = new Button( group, SWT.RADIO | SWT.RIGHT );
ivWinHandRadio.setText( "Winner!" );
开关代码是
void setWinOff()
{
ivWinHandRadio.setSelection( false );
ivWinHandRadio.notifyListeners( SWT.Selection, new Event() );
}
我将 SWT 分层为:
a|------------------------------------------------|
b||----------------------------------------------||
c|||=====================||=====================|||
d||| ( ) Winner! || ( ) Winner! |||
||| || |||
|||=====================||=====================|||
||----------------------------------------------||
|------------------------------------------------|
- a是一个滚动组合
- b是复合的
- c是两组
- d是每组中的一个单选按钮
创建单选按钮时如何关闭它们?在牌局开始之前将左侧显示为赢家是不好的。
注意:我可以打开表单中的最后一个单选按钮,然后关闭第一个按钮。然后在第一个单选按钮上单击我可以关闭最后一个单选按钮,从而解决这个问题。我已经对此进行了测试。呸!