Java - Obtener fila seleccionada de jTable. (teclas navegacion)

 
Vista:

Obtener fila seleccionada de jTable. (teclas navegacion)

Publicado por Nelson González (4 intervenciones) el 22/06/2012 18:19:53
Saludos. Agradecería su ayuda.

Mi problema es que tengo un jTable y un Label que me indica el indice de la fila seleccionada.
Si selecciono mediante click una fila no hay problema me funciona bien.

La dificultad se presenta cuando me desplazo entre las filas con las teclas de navegación. Trate de resulver el problema con el evento KEYPRESSED de mi tabla así:

1
2
3
4
5
6
7
8
private void tablaKeyPressed(java.awt.event.KeyEvent evt) {
        try {
            if (evt.getKeyCode() == 38 || evt.getKeyCode()== 40) {
                label.setText(tabla.getSelectedRow());
        }catch(Exception ex){
 
        }
    }


Si luego de seleccionar con clic en una fila oprimo la tecla de navegación abajo, lo que obtengo con el metodo getSelectedRow(); no es el indice de la fila de abajo sino de la que seleccioné con el mouse.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Obtener fila seleccionada de jTable. (teclas navegacion)

Publicado por Wilmar (1 intervención) el 20/10/2012 18:38:05
Hola, pues obvio que obtienes el indice de selección que habiar seleccionado con el mouse, esto pq el metodo keyPressed se dispara antes de que se seleccione la siguiene fila, es decir, la siguiente fila se selecciona al soltar la tecla, intenta con keyReleased en vez de keyPressed
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener fila seleccionada de jTable. (teclas navegacion)

Publicado por Edgar Reyes Valdez (1 intervención) el 17/03/2017 05:35:05
Cambiar tablaKeyPressed por KeyReleased

1
2
3
4
5
6
7
8
9
10
11
12
13
private void tablaKeyReleased(java.awt.event.KeyEvent evt) {
 
    try {
 
        if (evt.getKeyCode() == 38 || evt.getKeyCode()== 40) {
 
            label.setText(tabla.getSelectedRow());
 
        }catch(Exception ex){
 
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar