當我創建幾個單選按鈕(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