簡體   English   中英

JTable-防止用戶取消選擇表中的所有元素

[英]JTable - prevent the user from de-selecting all elements in the table

我有一個固定內容的表,我知道它永遠不會為空。

我想將其用作單選按鈕(松散地說):我總是希望一次只選擇一行。

我已經知道可以將選擇模型設置為SINGLE_SELECTION但是(出乎意料的是)這似乎並不能阻止用戶取消選擇表中的所有行。

有沒有一種簡單的方法可以防止用戶取消選擇表中的所有行?

我只能想到這樣的東西:

@Override
public void valueChanged(ListSelectionEvent listSelectionEvent) {
    if (!listSelectionEvent.getValueIsAdjusting() && table.getSelectedRow() == -1) {
        table.selectRow(0);
    }
}

但是坦率地說,對於這樣一個簡單的任務來說似乎太笨拙了(我需要記住舊的選擇才能更好地實現該模式)...

有沒有更簡單/更優雅的方式?

謝謝!

如果這是被取消選擇的最后一行,則覆蓋“ changeSelection”方法以不取消選擇,例如

public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)
            {
                if(!(toggle && jt.getSelectedRowCount() == 1))
                {
                    super.changeSelection(rowIndex, columnIndex, toggle, extend);
                }
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM