这是我刚刚使用这个问题中的答案开发的代码。使用这些功能,您可以一次选择多行并在JTable. 我已将这些函数附加到JButton,但我将它们清除以使其更具可读性。
两种方法 ( setRowSelectionInterval())的最后一行代码都用于跟随要移动的行上的选择,因为moveRow()不会移动选择而是移动行的内容。
public void moveUpwards()
{
moveRowBy(-1);
}
public void moveDownwards()
{
moveRowBy(1);
}
private void moveRowBy(int by)
{
DefaultTableModel model = (DefaultTableModel) table.getModel();
int[] rows = table.getSelectedRows();
int destination = rows[0] + by;
int rowCount = model.getRowCount();
if (destination < 0 || destination >= rowCount)
{
return;
}
model.moveRow(rows[0], rows[rows.length - 1], destination);
table.setRowSelectionInterval(rows[0] + by, rows[rows.length - 1] + by);
}
Run Code Online (Sandbox Code Playgroud)