2012-11-28 18 views
2

我已將JToggleButton添加到ButtonGroup。這是ButtonGroup的影響力嗎?

然後我不能通過再次單擊它來取消選擇此ToggleButton。

我很確定JToggleButton可以通過單擊來取消選中。

有沒有簡單的方法讓按鈕正常工作?

Basic ButtonGroup正常工作(單擊B並取消選擇A)。

但我想要的是當A被選中,並且可以通過再次單擊來取消選擇。

總之,我希望這兩種情況都有效。

選定 - >點擊乙 - >甲非選擇

選定 - >點擊A - >甲非選擇(普通JToggleButton中)

enter image description here

回答

3

總之是.. 。沒有ButtonGroup一切正常,但:

通常你應該初始化一個單選按鈕組,這樣一個 是選擇編輯。但是,API不強制執行此規則 - 一組 單選按鈕可能沒有初始選擇。一旦用戶選擇了 ,那麼從那時起只有一個按鈕被選中。

所以基本上唯一沒有JToggle按鈕可以選擇的時間是在啓動。選擇一分鐘,我們只能改變選擇,我們不能取消所有選擇。 如果我們從邏輯上考慮它是有道理的,想象我們有2個選項 ...至少有一個選項必須在當時被選中/強制執行。或者你必須添加更多的替代品,如,還在想(愚蠢的例子,但我不擅長解釋)。

,但總有一個變通:

有聯合國 - 選擇所有的按鈕不支持的API。但是,如果您確實想要取消選擇所有按鈕(不是建議的),請致電setSelected(null, true)以應答ButtonGroup

參考:(?濫用)

+0

@ user1850337查看更新 –

+1

Thx很多! 我想我會初始化一個選定的組。 – user1850337

+1

+1有一個相關示例[此處](http://stackoverflow.com/a/6036048/230513)。 – trashgod

1

你能在兩個按鈕的去除選擇事件做一個ButtonGroup.clearSelection()但後來,你可以離開了的ButtonGroup並簡單地聆聽選擇狀態。