这是我的代码。我想在 中选择多行JTable
,我正在使用以下行:
table.getColumnModel().getSelectionModel().setSelectionMode(
javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
使用上面的行,我可以使用键盘选择多行,但要求只能使用鼠标进行选择。
除此以外,Java 仅使用鼠标而不使用键盘提供多项选择吗?
我不认为这是可能的。我建议在表格中添加一个附加列,其中包含一个复选框,允许将该行标记为选中。当然,您将无法使用表格选择模型来知道选择了哪些行。
是的,您可以通过覆盖 changeSelection 函数来选择多行而不使用键盘,如下所示:
@Override
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend) {
latestClickedRowIndex = rowIndex;
ListSelectionModel selectionModel = getSelectionModel();
boolean selected = selectionModel.isSelectedIndex(rowIndex);
//throw new UnsupportedOperationException("Paila.");
if (selected) {
selectionModel.removeSelectionInterval(rowIndex, rowIndex);
getValueAt(rowIndex, columnIndex);
} else {
selectionModel.addSelectionInterval(rowIndex, rowIndex);
}
}
我终于使用了这段代码:
JTable table = new JTable(){
@Override
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend) {
super.changeSelection(rowIndex, columnIndex, true, extend);
}
};
这样 CTRL(toogle) 总是被推送(true)。