Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con JTtables y seleccion de fila

Estas en el tema de Problema con JTtables y seleccion de fila en el foro de Java en Foros del Web. Bueno, tengo un problema con las jtable. Al apretar un boton me aparece una ventana. Esta ventana tiene unos textfield en el cual se vuelcan ...
  #1 (permalink)  
Antiguo 22/09/2009, 11:22
 
Fecha de Ingreso: febrero-2007
Mensajes: 141
Antigüedad: 17 años, 9 meses
Puntos: 1
Problema con JTtables y seleccion de fila

Bueno, tengo un problema con las jtable. Al apretar un boton me aparece una ventana. Esta ventana tiene unos textfield en el cual se vuelcan datos de la fila seleccionada de la jtable. El tema es que el getSelectedRow() anda perfectamente.. pero al momento de apretar el boton para abrir la nueva ventana, es como si la jtable se deseleccionara y me toma la fila como -1. Por lo tanto me saltan errores, etc.

Alguien tiene idea? :S
  #2 (permalink)  
Antiguo 22/09/2009, 11:44
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Problema con JTtables y seleccion de fila

Hola,

Es posible puesto que JTable perdió el focus. Posiblemente puedas guardar el valor de getSelectedRow() en una variable justo antes de hacer visible el otro formulario, y usar esa variable como la fila seleccionada. Y lo podrías implementar como una propiedad del JFrame o pasarla como parámetro al contructor del otro JFrame.

Saludos,
  #3 (permalink)  
Antiguo 22/09/2009, 12:24
 
Fecha de Ingreso: febrero-2007
Mensajes: 141
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: Problema con JTtables y seleccion de fila

Es qe es exactamente lo que hago..

Esto hago en la clase donde se encuentra el jtable..

Código:
public String codigo(){
                int row = jtbarticulos.getSelectedRow();
		return Codigo = String.valueOf(jtbarticulos.getValueAt(row, 0));
	}
Y en la otra clase de la ventana nueva.. hago esto:

Código:
public void cargarart(){
		txtCodigo2.setText(codigo().toString());
Y me tira esto:

Código:
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Invalid index
o esto:

Código:
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: -1
  #4 (permalink)  
Antiguo 22/09/2009, 12:57
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Problema con JTtables y seleccion de fila

Hola,

Estaba equivocado en que cuanto a que cuando pierde el foco posiblemente se perdía la selección actual. En cuanto a getSelectedRow() siempre funciona adecuadamente independientemente de cual formulario sea el que lo lea (una vez tenga acceso a la tabla correcta).

Lo único que me queda duda es lo siguiente, supongo que escribiste esto solo para ejemplificar ... puesto que no tienes acceso al método codigo() desde el formulario B, sin especificar que estas llamado al método en el formulario A.

Cita:
Iniciado por chnn' Ver Mensaje
Código:
public void cargarart(){
		txtCodigo2.setText(A.codigo().toString());
No pude reproducir el problema, posiblemente alguien más pueda ser de mayor ayuda.

Saludos,
  #5 (permalink)  
Antiguo 22/09/2009, 13:01
 
Fecha de Ingreso: febrero-2007
Mensajes: 141
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: Problema con JTtables y seleccion de fila

Si, eso lo puse para ejemplificar.. en mi codigo lo tengo puesto correctamente.

La verdad es que no se qe hacer..

Le puse un mouseclicked listener al jtable con un system.out.println de getSelectedRow().. y me muestra perfectamente cada linea que yo selecciono.. pero cuando apreto en el boton me muestra -1 :S no se que hacer!!!
  #6 (permalink)  
Antiguo 22/09/2009, 13:56
 
Fecha de Ingreso: febrero-2007
Mensajes: 141
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: Problema con JTtables y seleccion de fila

Listo :D solo tenia que cambiar el int a static :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:50.