Capitulo17 Menus en Java
Capitulo17 Menus en Java
Capitulo17 Menus en Java
Menús en Java
Contenido:
En el presente capítulo describiremos la
interfaz gráfica de usuario en Java.
Empezaremos hacer aplicaciones de escritorio
con Swing y AW.
Lenguaje de Programación
www.zonajava.net
Objetivos:
• Comprender los contextos de gráficos y los objetos de gráficos.
• Comprender y manipular menús en java.
• Manejar eventos utilizando menús en java
1. Introducción
En la actual versión del AWT que se proporciona con el JDK, sólo se permite crear
menús a través de código, ya que Java todavía no dispone de un formato de recursos
y tampoco hay un diseñador como pueden ser AppStudio, Delphi o X-Designer;
aunque terminará habiendo uno, con seguridad.
No hay ningún método para diseñar una buena interface, todo depende del
programador. Los menús son el centro de la aplicación. La diferencia entre una
aplicación útil y otra que es totalmente frustrante radica en la organización de los
menús, pero eso, las reglas del diseño de un buen árbol de menús, no están claras.
Hay un montón de libros acerca de la ergonomía y de cómo se debe implementar la
interacción con el usuario. Lo cierto es que por cada uno que defienda una idea,
seguro que hay otro que defiende la contraria. Todavía no hay un acuerdo para crear
un estándar, con cada Window Manager se publica una guía de estilo diferente. Así
que, vamos a explicar lo básico, sin que se deba tomar como dogma de fe, para que
luego cada uno haga lo que mejor le parezca.
• combo boxes
• list
• radio buttons
• tool bars
www.zonajava.net
MÉTODO DESCRIPCIÓN
Otra característica relevante de los menús es que son únicos y se caracterizan ya que
no se sitúan con otros componentes para su correcto funcionamiento, y en lugar de
esto aparecen como -una barra de menú - o - Un menú despegable.
menu.add(menuItem);
www.zonajava.net
menu.addSeparator();
submenu = new JMenu("Listado");
menuItem = new JMenuItem("Clientes");
submenu.add(menuItem);
centrarVentana(450, 260);
this.setVisible(true);
}
}
5. Menús desplegables
Los menús desplegables tienen varios características entre ellas la de ahorrar
espacio, gracias a que cada menú puede tener un menú desplegable propio para
mostrar sus items. Cuando el menú se inicia, utiliza su menú despegable para mostrar
sus ítems, esto gracias a que cuando muestra y implementa la ventana que contiene
los ítems, se implementa una ventana nueva utilizando componentes tales como:
• JPanel
• Panel
• ventana (window)
Un consejo que les puedo dar para que su programa sea mejor, es que utilicen la ventanas
desplegables de peso ligero o sea las de JPanel ya que son las más eficientes.
6. Distribución de un Menú
Un programador también tiene la opción de distribuir el menú donde quiera ya que los
menús se hacen con componentes Swing, por ejemplo, podemos añadir cualquier
componente ligero a un JMenu o JMenuBar, o podemos cambiar el aspecto de un
menú cambiando de igualmanera el controlador de distribución,por ejemplo, podemos
cambiar el controlador de distribución de la barra de menú de un valor izquierda por
uno derecha, o también utilizar otros controladores como GridLayout o FlowLayout.
www.zonajava.net
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
rbMenuItem.setSelected(true);
grupo.add(rbMenuItem);
menu.add(rbMenuItem);
rbMenuItem = new JRadioButtonMenuItem("Verde");
grupo.add(rbMenuItem);
menu.add(rbMenuItem);
menu.addSeparator();
cbMenuItem = new JCheckBoxMenuItem("Negrita");
menu.add(cbMenuItem);
cbMenuItem = new JCheckBoxMenuItem("Cursiva");
menu.add(cbMenuItem);
centrarVentana(450, 260);
this.setVisible(true);
}
}
www.zonajava.net
www.zonajava.net
• void setState(boolean)
• boolean getState()
• void addActionListener(ActionListener)
• void addItemListener(ItemListener)
Ejemplo01:
Realiza un programa que crea un menú de opciones, utilizando eventos.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
www.zonajava.net
JSubMenu1.add(rbMenuItem);
JSubMenu1.add(rbMenuItem);
JSubMenu1.add(rbMenuItem);
JMenu1.add(JSubMenu1);
JMenu1.addSeparator();
JSubMenu1.add(JMenuItem1);
JMenu1.add(JSubMenu1);
centrarVentana(450, 260);
this.setVisible(true);
}
www.zonajava.net
}
if (OrigenMenu.getText() == "Azul"){
JLabel1.setForeground(Color.blue);
}
if (OrigenMenu.getText() == "Dialog"){
JLabel1.setFont(new Font("Dialog", 0, 18));
}
if (OrigenMenu.getText() == "SansSerif"){
JLabel1.setFont(new Font("SansSerif", 0, 18));
}
if (OrigenMenu.getText() == "Monospaced"){
JLabel1.setFont(new Font("Monospaced", 0, 18));
};
};
}