JTable - 防止用户取消选择 table 中的所有元素
JTable - prevent the user from de-selecting all elements in the table
我有一个 table 固定内容,我知道它永远不会为空。
我想将它用作单选按钮(粗略地说):我希望每次始终只选择一行。
我已经知道我可以将选择模型设置为 SINGLE_SELECTION
但是(出乎意料的是)这似乎并不能阻止用户取消选择 table.
中的所有行
有没有一种简单的方法可以防止用户取消选择 table 中的所有行?
我只能想到类似的东西:
@Override
public void valueChanged(ListSelectionEvent listSelectionEvent) {
if (!listSelectionEvent.getValueIsAdjusting() && table.getSelectedRow() == -1) {
table.selectRow(0);
}
}
但是,坦率地说,对于这样一个简单的任务来说似乎有点太笨拙了(我需要记住旧的选择以更好地实现该模式)...
有没有easier/more优雅的方法?
谢谢!
重写 'changeSelection' 方法,不取消选择,如果这是被取消选择的最后一行,就像这样
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)
{
if(!(toggle && jt.getSelectedRowCount() == 1))
{
super.changeSelection(rowIndex, columnIndex, toggle, extend);
}
}
我有一个 table 固定内容,我知道它永远不会为空。
我想将它用作单选按钮(粗略地说):我希望每次始终只选择一行。
我已经知道我可以将选择模型设置为 SINGLE_SELECTION
但是(出乎意料的是)这似乎并不能阻止用户取消选择 table.
有没有一种简单的方法可以防止用户取消选择 table 中的所有行?
我只能想到类似的东西:
@Override
public void valueChanged(ListSelectionEvent listSelectionEvent) {
if (!listSelectionEvent.getValueIsAdjusting() && table.getSelectedRow() == -1) {
table.selectRow(0);
}
}
但是,坦率地说,对于这样一个简单的任务来说似乎有点太笨拙了(我需要记住旧的选择以更好地实现该模式)...
有没有easier/more优雅的方法?
谢谢!
重写 'changeSelection' 方法,不取消选择,如果这是被取消选择的最后一行,就像这样
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)
{
if(!(toggle && jt.getSelectedRowCount() == 1))
{
super.changeSelection(rowIndex, columnIndex, toggle, extend);
}
}