这是我的代码。我想在JTable
中选择多行,我使用以下行:
table.getColumnModel().getSelectionModel().setSelectionMode(
javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
使用上面的代码我可以使用键盘选择多行,但要求只使用鼠标选择。
除此之外还有什么东西,Java只使用鼠标而不使用键盘提供多种选择?
答案 0 :(得分:2)
如果您有此代码,则只需按住ctrl +单击多个。
编辑:但如果您不想使用键盘,我认为可以尝试:
Select Multiple Items In JList Without Using The Ctrl/Command Key
答案 1 :(得分:2)
我不认为这是可能的。我建议在表格中添加一个附加列,其中包含一个复选框,允许将该行标记为已选中。当然,您将无法使用表选择模型来了解选择了哪些行。
答案 2 :(得分:1)
是的,您可以通过覆盖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);
}
}
答案 3 :(得分:0)
我终于使用了这段代码:
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)。