Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/12/2008, 13:49
pablitino
 
Fecha de Ingreso: diciembre-2008
Mensajes: 100
Antigüedad: 16 años
Puntos: 0
Respuesta: Mostrar menu con click derecho en una tabla..

Cita:
Iniciado por jkintero Ver Mensaje
Código:
tbProducto.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
System.out.println("Click derecho");
if(e.isPopupTrigger()){
System.out.println("menu");
paquete.popupMenu(e);
}
}
});

Hola jkintero!! XD

A ver si te puedo ayudar. Primero yo quitaría esos mensajes:
System.out.println("Click derecho");
System.out.println("menu");

(supongo que los habías puesto para seguir las trazas del programa)

Luego, si quieres que sea el botón derecho y no otro, deberías de preguntar por e.getButton() == java.awt.event.MouseEvent.BUTTON3 para ver si es este botón; lo de e.isPopUpTrigger() si he visto ejemplos en los que se ponía esto... pero no sé el por qué... lo veo innecesario... yo lo quitaría.
Lo de paquete.popupMenu(e); no sé a que viene... supongo que paquete será un elemento JPopupMenu... pues si es así deberías de hacer paquete.show() en las coordenadas adecuadas y hacerlo visible paquete.setVisible(true).
En definitiva :
Cita:
tbProducto.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
if( e.getButton() == java.awt.event.MouseEvent.BUTTON3 )
{
paquete.show(e.getComponent(), e.getX(), e.getY());
//esto le dice donde se tiene que mostrar
paquete.setVisible(true);
}
}
});
P.D: También puede ser interesante que al hacer click derecho algunas acciones se muestren inhibidas y no se permitan hacer... esto se consigue con setEnable(boolean) en un elemento JMenuItem del JPopupmenu...

Espero haberte sido de ayuda. Saludos!!!