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

Mostrar menu con click derecho en una tabla..

Estas en el tema de Mostrar menu con click derecho en una tabla.. en el foro de Java en Foros del Web. Hola necesito que me ayuden, estoy haciendo una aplicacion donde debo mostrar datos en una tabla, en cual me debe mostrar un menu al hacer ...
  #1 (permalink)  
Antiguo 09/12/2008, 15:31
 
Fecha de Ingreso: diciembre-2008
Mensajes: 71
Antigüedad: 15 años, 5 meses
Puntos: 0
Mostrar menu con click derecho en una tabla..

Hola necesito que me ayuden, estoy haciendo una aplicacion donde debo mostrar datos en una tabla, en cual me debe mostrar un menu al hacer click derecho en el mouse y te de varias opciones.

lo que me falla es en evento cuando utilizo isPopupTriger() no funciona y cuando utilizo getbutton() funciona, estoy utilizando Modelo Vista Controlador.

aqui les muestro parte del codigo:

Clase interfaz Grafica:

Cita:
public JTable getTbProducto() {
if (tbProducto == null) {
tbProducto = new JTable();
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);
}
}
});

}
return tbProducto;
}

Controlador de interfaz Grafica:

Cita:
public void popupMenu(MouseEvent e1){
JOptionPane.showMessageDialog(null,"El menu aparecera");
JMenuItem mnDelete = new JMenuItem("Eliminar");
mnDelete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
JOptionPane.showMessageDialog(null, "Borrara elemento");
}
});
JPopupMenu pMenu = new JPopupMenu();
pMenu.add(mnDelete);
pMenu.show(e1.getComponent(), e1.getX(), e1.getY());

}

Última edición por jkintero; 11/12/2008 a las 00:57
  #2 (permalink)  
Antiguo 10/12/2008, 13:49
 
Fecha de Ingreso: diciembre-2008
Mensajes: 100
Antigüedad: 15 años, 4 meses
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!!!
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 17:50.