Como determinar cual item fue seleccionada

pedroemilio
30 de Septiembre del 2004
Hola

Tengo una aplicacion que habre un popup menu cuyos items son JCheckBoxMenuItem. La idea es que que cuando se despliegue el JpopupMenu y se seleccione uno o varios de los JCheckboxMenuItem y, de acuerdo a la elección actuar en consecuencia.

Para ello dispongode una clase que define los JCheckBoxMenuItem que son receptores de eventos.

A su vez exite una clase que manipula estos eventso. Si bien es cierto que se reconocen los eventos, pues entra al la clase que manipula eventos, no puedo determinar si el objecto seleccionado es uno u otro del JCheckBoxMenuItem.

Esta es la clase PopumMenu:

public class PopupMenu {

JPopupMenu menu;
JMenuItem go;
JCheckBoxMenuItem sptbs,objsinsp,jobstate;

/** Creates a new instance of PopupMenu */
public JPopupMenu PopupMenu1() {

menu = new JPopupMenu("Menu de Opciones");
sptbs = new JCheckBoxMenuItem("ESPACIO EN TABLESPACE");
sptbs.addItemListener(new DbEvent());
objsinsp = new JCheckBoxMenuItem("OBJETOS SIN ESPACIO PARA CRECER");
objsinsp.addItemListener(new DbEvent());
jobstate = new JCheckBoxMenuItem("ESTADO DE JOBS");
jobstate.addItemListener(new DbEvent());
go = new JMenuItem("EJECUTA");
go.addItemListener(new DbEvent());

menu.add(sptbs);menu.addSeparator();
menu.add(objsinsp);menu.addSeparator();
menu.add(jobstate);menu.addSeparator();
menu.add(go);
return menu;

}



}


Y esta es la clase que manipula los eventos.
public class DbEvent extends PopupMenu implements ItemListener {

/** Creates a new instance of DbEvent */
public DbEvent() {
}

public void itemStateChanged(ItemEvent e) {

Object Source = e.getItemSelectable();

Object Source = e.getItemSelectable();

if (Source==super.sptbs){

System.out.println("ESPACIO EN TABLESPACES");
}

if (Source==super.objsinsp){

System.out.println("OBJETOS SIN ESPACIO PARA CRECER");
}

if(Source==super.jobstate){

System.out.println("ESTADO DE JOBS");

}



}

}