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

Duda popup en Jtable

Estas en el tema de Duda popup en Jtable en el foro de Java en Foros del Web. Buenas tardes, Tengo una duda a ver si alguien me puede echar una mano. En un jtable tengo una lista de usuarios y quiero que ...
  #1 (permalink)  
Antiguo 05/05/2012, 10:17
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Duda popup en Jtable

Buenas tardes,

Tengo una duda a ver si alguien me puede echar una mano. En un jtable tengo una lista de usuarios y quiero que al hacer botón derecho sobre la fila de alguno de ellos, salga un popup que ponga modificar / borrar.

He conseguido hacer que salga el popup, de la siguiente manera:

Código PHP:
tabla1.addMouseListener(new MouseAdapter() {
                                
    public 
void mouseClicked(MouseEvent e)                

   if(
e.getButton()==MouseEvent.BUTTON3){
                                      
      
pop.show(tablaUsuariose.getX(), e.getY());
    }


El problema es que cuando el doy por ejemplo a modificar, quiero que salga una ventana con los datos del usuario en el cual se ha hecho click y que el usuario ya pueda cambiar los datos.

El problema es ¿ Cómo sé a que fila he tocado ?

Había pensado que como cuando le había dado botón derecho tengo un getX, getY de la tabla, pero no sé como seleccionar la fila en base a esas coordenadas.

¿Alguién sabe como puedo solucionar esto?

Un saludo y gracias!
__________________
Aprendiendo un poco de Java :D
  #2 (permalink)  
Antiguo 05/05/2012, 12:37
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 12 años, 3 meses
Puntos: 34
Respuesta: Duda popup en Jtable

getSelectedRow, verifica que sea mayor a -1 el valor ya que si es -1 significa que no a seleccionado ninguna fila.
  #3 (permalink)  
Antiguo 20/07/2012, 20:53
 
Fecha de Ingreso: junio-2012
Mensajes: 22
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Duda popup en Jtable

Yo iba a hacer esta misma pregunta. Encontraste ya la solución???

Cita:
Iniciado por LuisChavezB Ver Mensaje
getSelectedRow, verifica que sea mayor a -1 el valor ya que si es -1 significa que no a seleccionado ninguna fila.
Esta respuesta no responde a mi duda.

Yo lo único que quiero es que al hacer click con el derecho me seleccione la fila de la jtable y salga el menú (lo del menú ya lo he conseguido, me falta sólo lo de que seleccione antes la fila).

Alguna ayuda¿?¿?
  #4 (permalink)  
Antiguo 21/07/2012, 04:04
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Duda popup en Jtable

Buenas,

Puedes usar el método rowAtPoint.

Código Java:
Ver original
  1. tabla1.addMouseListener(new MouseAdapter() {
  2.                                
  3.     public void mouseClicked(MouseEvent e)                
  4.  
  5.    if(e.getButton()==MouseEvent.BUTTON3){
  6.                                      
  7.       int row = tabla1.rowAtPoint(new Point(e.getX(),e.getY())); //Obtienes el número de la fila
  8.      tabla1.setRowSelectionInterval(row,row); //Seleccionas la fila
  9.  
  10. //Haces lo que quieras
  11.    
  12.     }
  13.  
  14. }
  #5 (permalink)  
Antiguo 21/07/2012, 04:42
 
Fecha de Ingreso: junio-2012
Mensajes: 22
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Duda popup en Jtable

Justo lo que necesitaba.

Muchas gracias

Lo único que ahora tengo otro problema, y es que al darle con el botón derecho me aparece un jPopupMenu, y si está desplegado este jPopupMenu y vuelvo a hacer click con el derecho en otra fila no me capta el click del botón secundario, sin embargo si hago click fuera con el izquierdo y se esconde el jPopupMenu si que funciona.

Pongo el código, pero es básicamente el que me has puesto en tu mensaje:


Código Java:
Ver original
  1. if(evt.isMetaDown())
  2.         {
  3.             int row = Tabla_Resultados.rowAtPoint(new Point(evt.getX(),evt.getY())); //Obtienes el número de la fila
  4.             Tabla_Resultados.setRowSelectionInterval(row,row); //Seleccionas la fila
  5.         }
}

Última edición por vitino_mr; 21/07/2012 a las 05:34

Etiquetas: jtable, popup
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 09:20.