//CLASE GENERICA PARA EL MENU import java.awt.*; import java.awt.event.*; public class MyMenu extends Menu { public MyMenu(Object labels[],ActionListener al,ItemListener il) { super((String)labels[0]); String menuName = (String) labels[0]; char firstMenuChar = menuName.charAt(0); if(firstMenuChar == '~' || firstMenuChar =='!'){ setLabel(menuName.substring(1)); if(firstMenuChar == '~') setEnabled(false); } for(int i=1;i<labels.length;++i) { if(labels[i] instanceof String){ if("-".equals(labels[i])) addSeparator(); else{ String label = (String)labels[i]; char firstChar = label.charAt(0); switch(firstChar){ case '+': CheckboxMenuItem checkboxItem = new CheckboxMenuItem(label.substring(1)); checkboxItem.setState(true); add(checkboxItem); checkboxItem.addItemListener(il); break; case '#': checkboxItem = new CheckboxMenuItem(label.substring(1)); checkboxItem.setState(true); checkboxItem.setEnabled(false); add(checkboxItem); checkboxItem.addItemListener(il); break; case '-': checkboxItem = new CheckboxMenuItem(label.substring(1)); checkboxItem.setState(false); add(checkboxItem); checkboxItem.addItemListener(il); break; case '=': checkboxItem = new CheckboxMenuItem(label.substring(1)); checkboxItem.setState(false); checkboxItem.setEnabled(false); add(checkboxItem); checkboxItem.addItemListener(il); break; case '~': MenuItem menuItem = new MenuItem(label.substring(1)); menuItem.setEnabled(false); add(menuItem); menuItem.addActionListener(al); break; case '!': menuItem = new MenuItem(label.substring(1)); add(menuItem); menuItem.addActionListener(al); break; default: menuItem = new MenuItem(label); add(menuItem); menuItem.addActionListener(al); } } }else{ add(new MyMenu((Object[])labels[i],al,il)); } } } public MenuItem getItem(String menuItem) { int numItems = getItemCount(); for(int i=0;i<numItems;++i) if(menuItem.equals(getItem(i).getLabel())) return getItem(i); return null; } }