2013-04-09 32 views
0

我想實現一個JTable包括三個複選框表是這樣的:如何抑制檢查多列單個複選框JTable中

image

你能告訴我如何設置一個選擇任何時候只允許在一行中選擇一個複選框的複選框組?

+0

引用了幾種替代方法[here](http://stackoverflow.com/a/11173600/230513)。 – trashgod 2013-04-09 11:26:05

回答

-1

我知道這樣做沒有什麼開箱即用的。我有一個TableModelListener每次進行更改時都會檢查這些列,並根據需要在複選框上調用setValueAt。

+0

好吧,但你將如何去檢查從三個布爾值(從getValueAt爲每個CheckBox返回),以獲得是否有2個值與一定的值(假)和另一個(真)? – gncvnvcnc 2013-04-09 07:30:04

+0

使用getColumn()可以獲得觸發TableModelevent的列。如果它是其中一個複選框,則檢查它是否已被選中或取消選中。如果它已被選中,則將其他兩個複選框的值更改爲false。這將允許所有三個複選框爲假。 如果你總是需要一個是真的,你必須用if-else子句檢查複選框的狀態,這樣用戶決不允許取消選擇全部三個或選擇多個子選項。 – 2013-04-09 07:40:04

+0

不,保持內部數據的約束(如給定行的幾個布爾值中只有一個布爾值爲真)是模型的固有責任,而不是某些外部監聽器。 – kleopatra 2013-04-19 13:24:21

相關問題