Dynamic Menu Java Swing -


i need make dynamic menu in java swing. have database table has menu structure. class assembles menu, want avoid burning in literal code in actionperformed method, class name (screen) comes in table field. screens 1 destoktoppane.

public class menuprincipal extends jframe implements actionlistener {  private static final long serialversionuid = 1l; public static jdesktoppane desktop;  public menuprincipal(arraylist<menudto> opcionesusuario) {      //creamos la ventana del menu principal.     super("menu principal - demografo");      jmenubar menubar = null;     jmenu menu = null, submenu = null;     jmenuitem menuitem = null;      int longitud = opcionesusuario.size();      //creamos una barra de menu     menubar = new jmenubar();      menu = new jmenu("archivo");     menuitem = new jmenuitem("cerrar sessiĆ³n",         new imageicon("images/middle.gif"));     menu.add(menuitem);     menu.addseparator();     menuitem = new jmenuitem("salir");     menu.add(menuitem);      menudto menudto;     for(int = 0; < longitud; ++) {         menudto = opcionesusuario.get(i);         if(menudto.gettienehijos().equals("s")) {             if(menudto.getidpadre() == null) {                 menu = new jmenu(menudto.getnombre());                 menubar.add(menu);             }             else {                 submenu = new jmenu(menudto.getnombre());                 menu.add(submenu);             }         }         else {             menuitem = new jmenuitem(menudto.getnombre());             menuitem.setactioncommand(integer.tostring(menudto.getidopcion()));             menuitem.addactionlistener(this);             menu.add(menuitem);         }     }     desktop = new jdesktoppane();     desktop.setdragmode(jdesktoppane.outline_drag_mode);      int inset = 50;     dimension screensize = toolkit.getdefaulttoolkit().getscreensize();     setbounds(inset, inset,               screensize.width  - inset*2,               screensize.height - inset*2);     setcontentpane(desktop);     setjmenubar(menubar);     setdefaultcloseoperation(jframe.exit_on_close);     setextendedstate(maximized_both);     setsize(450, 260);     setvisible(true); }  public void actionperformed(actionevent e) {     if ("4".equals(e.getactioncommand()))         ingresociudades.getinstance(desktop);     else if ("5".equals(e.getactioncommand()))         ingresoparroquias.getinstance(desktop);     else if ("8".equals(e.getactioncommand()))         ingresobarrios.getinstance(desktop); } } 

consider implementing action interface, discussed in how use actions. there related examples here , here. can use class literals runtime-type tokens newinstance() of each of classes.


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -