Moviendo una fila en jTable

¿Cómo se puede mover una fila en jTable para que row1 vaya a la posición de row2 y row2 vaya a la posición de row1 ?

Utilice el moveRow(...) de DefaultTableModel .

O, si no está utilizando DefaultTableModel, implemente un método similar en su modelo personalizado.

Aquí está mi código que acabo de desarrollar usando la respuesta en esta pregunta. Con esas funciones, puede seleccionar varias filas a la vez y moverlas hacia arriba o hacia abajo en una JTable . He adjuntado esa función a JButton , pero las JButton para hacerlas más legibles.

La última línea de código de ambos métodos ( setRowSelectionInterval() ) se utiliza para seguir la selección en la fila que se mueve, ya que moveRow() no mueve la selección sino el contenido de la fila.

 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); } 
 TableModel model = jTable.getModel(); for(int col=0; col