sábado, 30 de junio de 2012

Los Menus de Java

Los Menus de Java
Los Menus de Java no descienden de Component, sino de MenuComponent, pero tienen un comportamiento similar, pues aceptan Events. La Figura  muestra la jerarquía de clases de los Menus de Java 1.1.
Para crear un Menú se debe crear primero una MenuBar; después se crean los Menus y los MenuItem. Los MenuItems se añaden al Menu correspondiente; los Menus se añaden a la MenuBar y la MenuBar se añade a un Frame.
Una MenuBar se añade a un Frame con el método setMenuBar(), de la clase Frame. También puede añadirse un Menu a otro Menu para crear un sub-menú, del modo que es habitual en Windows. La clase Menu es sub-clase de MenuItem. Esto es así precisamente para permitir que un Menu sea añadido a otro Menu.
Jerarquía de clases para los menús.

Clase MenuShortcut

La clase java.awt.MenuShortcut (derivada de Object) representa las teclas aceleradoras que pueden utilizarse para activar los menús desde teclado, sin ayuda del ratón. Se establece un Shortcut creando un objeto de esta clase con el constructor MenuShortcut(int vk_key), y pasándoselo al constructor adecuado de MenuItem. Para más información, consúltese la adocumentación on-line de Java. La Tabla muestra algunos métodos de esta clase. Los MenuShortcut de Java están restringidos al uso la tecla control (CTRL). Al definir el MenuShortcut no hace falta incluir dicha tecla.
Métodos de la clase MenuShortcut.

Clase MenuBar

La Tabla  muestra algunos métodos de la clase MenuBar. A una MenuBar sólo se pueden añadir objetos Menu.
Métodos de la clase MenuBar.

Clase Menu

El objeto Menu define las opciones que aparecen al seleccionar uno de los menús de la barra de menús. En un Menu se pueden introducir objetos MenuItem, otros objetos Menu (para crear submenús), objetos CheckboxMenuItem, y separadores. La Tabla muestra algunos métodos de la clase Menu. Obsérvese que como Menu desciende de MenuItem, el método add(MenuItem) permite añadir objetos Menu a otro Menu.
Métodos de la clase Menu.

Clase MenuItem

Los objetos de la clase MenuItem representan las distintas opciones de un menú. Al seleccionar, en la ejecución del programa, un objeto MenuItem se generan eventos del tipo ActionEvents. Para cada item de un Menu se puede definir un ActionListener, que define el método actionPerformed(). La Tabla muestra algunos métodos de la clase MenuItem.
Métodos de la clase MenuItem.
El método getActionCommand(), asociado al getSource() del evento correspondiente, no permite identificar correctamente al item cuando éste se ha activado mediante el MenuShortcut (en ese caso devuelve null).

Clase CheckboxMenuItem

Son items de un Menu que pueden estar activados o no activados. La clase CheckboxMenuItem no genera un ActionEvent, sino un ItemEvent, de modo similar a la clase Checkbox. En este caso hará registrar un ItemListener. La Tabla muestra algunos métodos de esta clase.
Métodos de la clase CheckboxMenuItem.

Menús pop-up

Los menús pop-up son menús que aparecen en cualquier parte de la pantalla al clicar con el botón derecho del ratón (pop-up trigger) sobre un componente determinado (parent Component). El menú pop-up se muestra en unas coordenadas relativas al parent Component, que debe estar visible.
Métodos de la clase PopupMenu.
Además, se pueden utilizar los métodos de la clase Menu, de la que deriva PopupMenu. Para hacer que aparezca el PopupMenu habrá que registrar el MouseListener y definir el método mouseClicked().

No hay comentarios:

Publicar un comentario