MENU Un menú en una aplicación no es más que un MenuBar en el que hay varios menús. Pensemos en un programa cualquiera con las voces de menú File Edit y Help. Estas tres voces en Java son unos objetos de la clase Menú y se tienen que añadir a un objeto de la clase MenuBar que se une a la ventana. Cada menú tiene varias voces. por ejemplo, el menú File tendrá las voces: Abrir, Cerrar, Guarda y Salir. Éstos en Java son unos objetos de la clase MenuItem (o también Menú si incluyen otros submenús).
Por lo tanto, si a una aplicación le quisieramos añadir un menú tendríamos hacer las siguientes cosas siguiendo un órden cualquiera: Crear los objetos MenuItem Crear los objetos menú y pegarles los MenuItem Crear una MenuBar y pegarles los Menús Además, como siempre, tenemos que escribir unos gestores para los sucesos de los menús y asociarlos a los menús. Veamos, en práctica, cómo se construye un menu, empezando por los MenuItem. Los sucesos de los MenuItem son los que tenemos que gestionar nosotros a diferencia de los sucesos de los menús que los gestiona el sistema. Mientras los segundos sirven para que aparezcan y desaparezcan las voces del menú, los primeros son los clics sobre la orden correspondiente al Item. Por lo tanto, para éstos tendremos que escribir unos ActionListener, como para los botones. Realmente no son otra cosa que unos botones especiales. Los constructores son tres: MenuItem() , que construye un MenuItem sin etiqueta. MenuItem(String label), que construye MenuItem con etiqueta label. MenuItem(String label, MenuShortcut s), que construye un MenuItem con etiqueta label y acelerador (tecla de opción rápida) definido en MenuShortcut s. Algunos métodos son: addActionListener(ActionListener l), asocia un ActionListener al MenuItem para escuchar los sucesos de tipo ActionEvent (el clic). void deleteShortcut(), borra la tecla de opción rápida para el menuitem. String getActionCommand(), da la acción asociada al MenuItem. La acción es la que pasa al actionListener del botón para identificar el botón mismo. Así varios item pueden tener el mismo gestor de sucesos que podrá distinguir el botón clicado basándose en la órden que le llega. String getLabel(), devuelve la etiqueta del MenuItem EventListener[]getListeners(Class listenerType) , devuelve todos los oyentes de sucesos asociados al MenuItem, del tipo listenerType.