繁体   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