Un componente GUI muy utilizado en las aplicaciones es las barra de menu. Para crearlas en java es muy sencillo, basta con un unas simples lineas.
Para ello son tres las clases que interactuan:
JMenuBar: Es el contenedor de nivel superior, es decir, contiene a cada uno de los menus.
JMenu: Contiene cada uno de los items dentro de el.
JMenuItem: Son cada uno de los items que permiten realizar una accion.
La estructura es sencilla, JMenu contiene a los JMenuItem, y JMenuBar contiene a los JMenu. En la imágen de abajo pueden ver mejor:
Para poder detectar eventos sobre los items, como por ejemplo cuando se hace click sobre el item Salir, se puede agregar al mismo una clase que implemente ActionListener .
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class EjemploJMenu extends JFrame {
public EjemploJMenu() {
setTitle("Ejemplo");
JPanel panel = new JPanel(new BorderLayout());
panel.add(getMenu(),BorderLayout.NORTH);
setContentPane(panel);
pack();
//Para que se maximice la ventana
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
}
private JMenuBar getMenu() {
//Instanciamos la barra de menu
JMenuBar barra = new JMenuBar();
/*
* Creamos el item nuevo
*/
//Instanciamos el primer menu
JMenu menuArchivo = new JMenu("Archivo");
JMenuItem itemNuevo = new JMenuItem("Nuevo");
//Agregamos al menu archivo el item nuevo
menuArchivo.add(itemNuevo);
//Creamos otros items
JMenuItem itemAbrir = new JMenuItem("Abrir");
menuArchivo.add(itemAbrir);
JMenuItem itemSalir = new JMenuItem("Salir");
//Al item Salir le agregamos un ActionListener para cerrar la aplicacion
MenuSalirListener menuSalir = new MenuSalirListener();
itemSalir.addActionListener(menuSalir);
menuArchivo.add(itemSalir);
//Agregamos a la barra de menu archivo
barra.add(menuArchivo);
/*
* Creamos el menu Edicion
*/
JMenu menuEdicion = new JMenu("Edicion");
JMenuItem itemCortar = new JMenuItem("Cortar");
menuEdicion.add(itemCortar);
JMenuItem itemCopiar = new JMenuItem("Copiar");
menuEdicion.add(itemCopiar);
JMenuItem itemPegar = new JMenuItem("Pegar");
menuEdicion.add(itemPegar);
barra.add(menuEdicion);
return barra;
}
public static void main(String[] args) {
EjemploJMenu ejemplo = new EjemploJMenu();
}
public class MenuSalirListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
}
Si queremos que nuestros JMenuItem tengan iconos simplemente debemos hacer:
JMenuItem itemNuevo = new JMenuItem("Nuevo",new ImageIcon("nuevo.gif"));
Seguramente también deseemos tener hoykeys para acceder a la acción del item, para ello agregamos un Accelerator como lo llama Java:
itemSalir.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.ALT_MASK));
Se ejecutara la acción del item Salir al presionar ALT + N .
No hay comentarios:
Publicar un comentario