//Asignar al modelo de selección del JTable (jTable1 es este caso),
// un objeto de una clase heredada de ListSelectionListener.
jTable1.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
//El método valueChange se debe sobreescribir obligatoriamente.
//Se ejecuta automáticamente cada vez que se hace una nueva selección.
@Override
public void valueChanged(ListSelectionEvent e) {
//Obtener el número de filas seleccionadas
int cuentaFilasSeleccionadas = jTable1.getSelectedRowCount();
System.out.println("Hay seleccionadas: " + cuentaFilasSeleccionadas + " filas");
if (cuentaFilasSeleccionadas == 1) {
//Sólo hay una fila seleccionada
int indiceFilaSeleccionada = jTable1.getSelectedRow();
System.out.println("Fila seleccionada: " + indiceFilaSeleccionada);
} else {
//Hay varias filas seleccionadas
int[] indicesfilasSeleccionadas = jTable1.getSelectedRows();
System.out.println("Filas seleccionadas: ");
for (int indice : indicesfilasSeleccionadas) {
System.out.print(indice + " ");
}
System.out.println();
}
}
});
Por defecto, se permite que el usuario seleccione varias filas, incluso en distintos intervalos. Si se desea cambiar este comportamiento se debe usar una de las siguientes instrucciones:
//Sólo se podrá seleccionar una fila
jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//Sólo se podrá seleccionar un intervalo de filas
jTable1.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
//Se podrán seleccionar varios intervalos de filas
jTable1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);