7/3/07

Java. Detectar una cambio en la selección de un JTable

Sirve por ejemplo para mostrar un dato a mayores sobre el registro que se muestra en la tabla en otra parte del formulario.
Hay que cambiar el "modelo de seleccionador" en principio el ponemos que solamente se pueda seleccionar una sola fila y luego definimos una clase para que se llame al evento y se la añadimos al "modelo de seleccionador" en el evento "Selection". (Pa flipá vamos. Lo que se echa de menos un "OnSelect" de toda la vida)

this.jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);/* lo de que solamente se pueda seleccionar una fila.*/

lsm = this.jTable1.getSelectionModel();
lsm.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e){
MetodoALlamarCuandoCambiaLaSeleccion();
}
};

Para saber la fila seleccionada se usa el método del JTable.getSelectedRow().

4 comentarios:

Anónimo dijo...

Gracias, de verdad me ayudó :)

Anónimo dijo...

gracias por tu codigo... me fue de mucha ayuda.... gracias

Dani Sebastián García dijo...

En qué parte hay que meter el código del listener? En el constructor?

Iván Cruz dijo...

8 años hace de esto y no sé muy bien a qué te refieres pero puedes poner todo esto en el constructor si ya se ha llamado a todo lo referente al jTable.

En realidad no tiene porqué ir en el contructor, puede ir en cualquier momento, pero no es mal sitio supongo.