Hola a todos de nuevo, ¿qué tal? Para la creación de
menús tenemos que manejar tres clases JMenuBar, JMenu y JMenuItem.
Para la construcción de los menús primero hay que crear una barra o soporte
donde se van a crear los menús y para ello instanciamos la clase JMenuBar.
Una vez creado la barra de menús habrá que colocar cada uno de los elementos de
menú con lo que instanciamos la clase JMenu, una vez construidos
los menús para construir los submenús utilizamos la clase JMenuItem.
Para ver todo esto más claro lo hacemos mediante una
práctica cuyo código inicial es el siguiente:
package swing;
import java.awt.Font;
import javax.swing.*;
public class EjemploMenu {
public static void main(String[] args) {
MarcoMenu mimarco = new MarcoMenu();
mimarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class MarcoMenu
extends JFrame {
public MarcoMenu(){
setVisible(true);
setBounds(550, 300, 550, 400);
LaminaMenu milamina = new LaminaMenu();
add(milamina);
}
}
class LaminaMenu
extends JPanel {
public LaminaMenu() {
}
}
Lo primero es crear la barra donde van a ir colocados
los menús instanciamos la clase JMenuBar:
public LaminaMenu() {
JMenuBar
barra = new JMenuBar();
}
Lo siguiente será crear los menús:
public LaminaMenu() {
JMenuBar
barra = new JMenuBar();
JMenu archivo = new JMenu("Archivo");
JMenu edicion = new JMenu("Edicion");
JMenu formato = new JMenu("formato");
}
Ahora tenemos que agregar los menús a la barra:
public LaminaMenu() {
JMenuBar
barra = new JMenuBar();
JMenu archivo = new JMenu("Archivo");
JMenu edicion = new JMenu("Edicion");
JMenu formato = new JMenu("formato");
barra.add(archivo);
barra.add(edicion);
barra.add(formato);
}
Añadimos la barra de menús a la lámina:
public LaminaMenu() {
JMenuBar
barra = new JMenuBar();
JMenu archivo = new JMenu("Archivo");
JMenu edicion = new JMenu("Edicion");
JMenu formato = new JMenu("formato");
barra.add(archivo);
barra.add(edicion);
barra.add(formato);
add(barra);
}
Con esto ya tendríamos la barra o el soporte donde van los menús y los menús:
Vamos a crear los submenús, los ítems que cuelgan de
los menús, tenemos que instanciar la clase JMenuItem:
public LaminaMenu() {
JMenuBar
barra = new JMenuBar();
JMenu archivo = new JMenu("Archivo");
JMenu edicion = new JMenu("Edicion");
JMenu formato = new JMenu("formato");
JMenuItem abrir = new JMenuItem("Abrir");
JMenuItem guardar = new JMenuItem("Guardar");
JMenuItem copiar = new JMenuItem("Copiar");
JMenuItem cortar = new JMenuItem("Cortar");
JMenuItem generales = new JMenuItem("Generales");
barra.add(archivo);
barra.add(edicion);
barra.add(formato);
add(barra);
}
Añadimos los submenús a los menús correspondientes:
public LaminaMenu() {
JMenuBar
barra = new JMenuBar();
JMenu archivo = new JMenu("Archivo");
JMenu edicion = new JMenu("Edicion");
JMenu formato = new JMenu("formato");
JMenuItem abrir = new JMenuItem("Abrir");
JMenuItem guardar = new JMenuItem("Guardar");
JMenuItem copiar = new JMenuItem("Copiar");
JMenuItem cortar = new JMenuItem("Cortar");
JMenuItem generales = new JMenuItem("Generales");
archivo.add(abrir);
archivo.add(guardar);
edicion.add(copiar);
edicion.add(cortar);
formato.add(generales);
barra.add(archivo);
barra.add(edicion);
barra.add(formato);
add(barra);
}
Probamos:
Si pinchamos en cada uno de los menús nos aparecen los
submenús.
Vamos a hacer que de un submenú cuelgue a su vez otro
submenú, para ello nos creamos un nuevo menú:
public LaminaMenu() {
JMenuBar
barra = new JMenuBar();
JMenu archivo = new JMenu("Archivo");
JMenu edicion = new JMenu("Edicion");
JMenu formato = new JMenu("formato");
JMenu opciones = new JMenu("Opciones");
JMenuItem abrir = new JMenuItem("Abrir");
JMenuItem guardar = new JMenuItem("Guardar");
JMenuItem copiar = new JMenuItem("Copiar");
JMenuItem cortar = new JMenuItem("Cortar");
JMenuItem generales = new JMenuItem("Generales");
archivo.add(abrir);
archivo.add(guardar);
edicion.add(copiar);
edicion.add(cortar);
formato.add(generales);
barra.add(archivo);
barra.add(edicion);
barra.add(formato);
add(barra);
}
Creamos los submenús:
public LaminaMenu() {
JMenuBar
barra = new JMenuBar();
JMenu archivo = new JMenu("Archivo");
JMenu edicion = new JMenu("Edicion");
JMenu formato = new JMenu("formato");
JMenu opciones = new JMenu("Opciones");
JMenuItem abrir = new JMenuItem("Abrir");
JMenuItem guardar = new JMenuItem("Guardar");
JMenuItem copiar = new JMenuItem("Copiar");
JMenuItem cortar = new JMenuItem("Cortar");
JMenuItem generales = new JMenuItem("Generales");
JMenuItem opcion1 = new JMenuItem("Opcion
1");
JMenuItem opcion2 = new JMenuItem("Opcion
2");
archivo.add(abrir);
archivo.add(guardar);
edicion.add(copiar);
edicion.add(cortar);
formato.add(generales);
barra.add(archivo);
barra.add(edicion);
barra.add(formato);
add(barra);
}
Le indicamos que estos dos submenús cuelgan del
menú Opciones:
public LaminaMenu() {
JMenuBar
barra = new JMenuBar();
JMenu archivo = new JMenu("Archivo");
JMenu edicion = new JMenu("Edicion");
JMenu formato = new JMenu("formato");
JMenu opciones = new JMenu("Opciones");
JMenuItem abrir = new JMenuItem("Abrir");
JMenuItem guardar = new JMenuItem("Guardar");
JMenuItem copiar = new JMenuItem("Copiar");
JMenuItem cortar = new JMenuItem("Cortar");
JMenuItem generales = new JMenuItem("Generales");
JMenuItem opcion1 = new JMenuItem("Opcion
1");
JMenuItem opcion2 = new JMenuItem("Opcion
2");
archivo.add(abrir);
archivo.add(guardar);
edicion.add(copiar);
edicion.add(cortar);
formato.add(generales);
barra.add(archivo);
barra.add(edicion);
barra.add(formato);
opciones.add(opcion1);
opciones.add(opcion2);
add(barra);
}
Y que el menú Opciones cuelgue del
menú Edición:
public LaminaMenu() {
JMenuBar
barra = new JMenuBar();
JMenu archivo = new JMenu("Archivo");
JMenu edicion = new JMenu("Edicion");
JMenu formato = new JMenu("formato");
JMenu opciones = new JMenu("Opciones");
JMenuItem abrir = new JMenuItem("Abrir");
JMenuItem guardar = new JMenuItem("Guardar");
JMenuItem copiar = new JMenuItem("Copiar");
JMenuItem cortar = new JMenuItem("Cortar");
JMenuItem generales = new JMenuItem("Generales");
JMenuItem opcion1 = new JMenuItem("Opcion
1");
JMenuItem opcion2 = new JMenuItem("Opcion
2");
archivo.add(abrir);
archivo.add(guardar);
edicion.add(copiar);
edicion.add(cortar);
formato.add(generales);
barra.add(archivo);
barra.add(edicion);
barra.add(formato);
opciones.add(opcion1);
opciones.add(opcion2);
edicion.add(opciones);
add(barra);
}
Probamos:
Si en vez de estar abajo del menú lo queremos arriba
esto depende de donde hayamos añadido el submenú Opciones, si lo
queremos arriba del todo:
public LaminaMenu() {
JMenuBar
barra = new JMenuBar();
JMenu archivo = new JMenu("Archivo");
JMenu edicion = new JMenu("Edicion");
JMenu formato = new JMenu("formato");
JMenu opciones = new JMenu("Opciones");
JMenuItem abrir = new JMenuItem("Abrir");
JMenuItem guardar = new JMenuItem("Guardar");
JMenuItem copiar = new JMenuItem("Copiar");
JMenuItem cortar = new JMenuItem("Cortar");
JMenuItem generales = new JMenuItem("Generales");
JMenuItem opcion1 = new JMenuItem("Opcion
1");
JMenuItem opcion2 = new JMenuItem("Opcion
2");
archivo.add(abrir);
archivo.add(guardar);
edicion.add(opciones);
edicion.add(copiar);
edicion.add(cortar);
formato.add(generales);
barra.add(archivo);
barra.add(edicion);
barra.add(formato);
opciones.add(opcion1);
opciones.add(opcion2);
add(barra);
}
Si probamos de nuevo:
No sé si os habréis fijado en los procesadores de
texto en algunos menús aparecen una línea horizontal separando algunos submenús
como si fueran grupos, por ejemplo, podríamos poner un separador una línea horizontal
debajo del submenú Opciones para indicar que no tienen que ver con los submenús
Copiar y Cortar, esto se haría con el método addSeparator(), justo
debajo del submenú opciones:
public LaminaMenu() {
JMenuBar
barra = new JMenuBar();
JMenu archivo = new JMenu("Archivo");
JMenu edicion = new JMenu("Edicion");
JMenu formato = new JMenu("formato");
JMenu opciones = new JMenu("Opciones");
JMenuItem abrir = new JMenuItem("Abrir");
JMenuItem guardar = new JMenuItem("Guardar");
JMenuItem copiar = new JMenuItem("Copiar");
JMenuItem cortar = new JMenuItem("Cortar");
JMenuItem generales = new JMenuItem("Generales");
JMenuItem opcion1 = new JMenuItem("Opcion
1");
JMenuItem opcion2 = new JMenuItem("Opcion
2");
archivo.add(abrir);
archivo.add(guardar);
edicion.add(opciones);
edicion.addSeparator();
edicion.add(copiar);
edicion.add(cortar);
formato.add(generales);
barra.add(archivo);
barra.add(edicion);
barra.add(formato);
opciones.add(opcion1);
opciones.add(opcion2);
add(barra);
}
Ejecutamos:
Os espero post que desarrollaremos un procesador de
textos paso a paso, eso sí, será un procesador básico muy rudimentario pero que
aplicaremos muchas de las cosas que ya conocemos. Hasta pronto!
7.8 JSPINNER << >> 7.10 CREACIÓN DE UNPROCESADOR DE TEXTOS
No hay comentarios:
Publicar un comentario