Capítulo
Nº 4 (Lección 03)
4.3. TRABAJAR CON BARRA DE MENÚ EN JAVA
Los menús forman parte importante en cualquier aplicación. En Java se cuenta con las clases JMenuBar, JMenu y JMenuItem para diseñar menús de opciones. También están otras clases para elementos de menús con checkboxes y radiobotones, en este Curso Práctico se trabajará con JMenuBar, JMenu y JMenuItem, por ser los más comunes.
4.3.1. Crear e insertar una Barra de Menú
La clase JMenuBar contiene los métodos necesarios para administrar una barra de menú, mientras que JMenu y JMenuItem contienen los métodos necesarios para administrar menús y elementos de menús.
Para crear una barra de menú en Java, se hace a partir de la clase JMenuBar. Por ejemplo, con la siguiente línea de código se crea el objeto Barra a partir de la clase JMenuBar.
JMenuBar Barra = new JMenuBar();
Para asignar la barra de menú Barra a la ventana creada en el apartado 4.1 de este capítulo, se hace a través del método setJMenuBar: setJMenuBar(Barra);
4.3.2. Crear e insertar un Menú y elementos de Menú
Para crear un menú en Java, se hace a partir de la clase JMenu. Por ejemplo, con la siguiente línea de código se crea el objeto Archivo con la etiqueta "Archivo" a partir de la clase JMenu.
JMenu Archivo = new JMenu("Archivo");
Para asignar el menú Archivo en la barra de menú Barra, se hace a través del método add: Barra.add(Archivo);
Para crear un ítem menú en Java, se hace a partir de la clase JMenuItem. Por ejemplo, con la siguiente línea de código se crea el objeto RegistrarAsignaturas con la etiqueta "Asignaturas"a partir de la clase JMenuItem.
JMenuItem RegistrarAsignaturas = new JMenuItem("Asignaturas");
Para asignar el ítem de menú RegistrarAsignaturas al menú Archivo, se hace a través del método add: Archivo.add(RegistrarAsignaturas);
Para crear el menú principal de la aplicación (clase MenuAdministrador.java), sólo basta con agregar después de la instrucción add(EtiquetaMenu); del punto 4.2.2 la siguiente línea de código:
//*** Se crean los objetos
para crear una barra de menú, opciones de menú
//*** en items de menú a
partir de las clases de Java: JMenuBar, JMenu y
//*** JMenuItem
JMenuBar Barra = new JMenuBar();
JMenu Archivo = new
JMenu("Archivo");
JMenuItem
RegistrarAsignaturas = new JMenuItem("Asignaturas");
JMenuItem RegistrarPensum =
new JMenuItem("Pensum");
JMenuItem Salir = new JMenuItem("Salir");
JMenu Estudiantes = new
JMenu("Estudiantes");
JMenuItem RegistrarEstudiante
= new JMenuItem("Registrar datos estudiante...");
JMenuItem CambiarEstudiante
= new JMenuItem("Cambiar datos estudiante...");
JMenuItem
EliminarEstudiante = new JMenuItem("Eliminar datos estudiante...");
JMenuItem ConsultarEstudiante = new JMenuItem("Consultar estudiantes...");
JMenu Historico = new
JMenu("Histórico");
JMenuItem
HistoricoCalificaciones = new JMenuItem
("Histórico calificaciones
estudiante...");
JMenuItem ConsultarHistorico = new JMenuItem("Consultar histórico estudiante...");
JMenu Inscripciones = new
JMenu("Inscripciones");
JMenuItem
SeleccionarAsignaturas = new JMenuItem
("Seleccionar asignaturas de
estudiante..");
JMenuItem
RegistrarInscripción = new JMenuItem
("Registrar y validar inscripción de
estudiante...");
JMenuItem
ConsultarInscripciones = new JMenuItem
("Consultar estudiantes inscritos...");
JMenu UsuariosSistema = new
JMenu("Usuarios");
JMenuItem RegistrarUsuario
= new JMenuItem("Registrar usuario y contraseña...");
JMenuItem CambiarUsuario =
new JMenuItem("Cambiar usuario y contraseña...");
JMenuItem EliminarUsuario =
new JMenuItem("Eliminar usuario y contraseña...");
JMenuItem ConsultarUsuario = new JMenuItem("Consultar usuarios...");
JMenu Ayuda = new
JMenu("Ayuda");
JMenuItem AyudaGeneral =
new JMenuItem("Ayuda general...");
JMenuItem Acercade = new JMenuItem("Acerca de...");
//*** Se asigna la barra de
menú a través del método setJMenuBar y se le
//*** agregan las opciones definidas anteriormente
setJMenuBar(Barra);
Barra.add(Archivo);
Archivo.add(RegistrarAsignaturas);
Archivo.add(RegistrarPensum);
Archivo.addSeparator();
Archivo.add(Salir);
Barra.add(Estudiantes);
Estudiantes.add(RegistrarEstudiante);
Estudiantes.add(CambiarEstudiante);
Estudiantes.add(EliminarEstudiante);
Estudiantes.add(ConsultarEstudiante);
Barra.add(Historico);
Historico.add(HistoricoCalificaciones);
Historico.add(ConsultarHistorico);
Barra.add(Inscripciones);
Inscripciones.add(SeleccionarAsignaturas);
Inscripciones.add(RegistrarInscripción);
Inscripciones.add(ConsultarInscripciones);
Barra.add(UsuariosSistema);
UsuariosSistema.add(RegistrarUsuario);
UsuariosSistema.add(CambiarUsuario);
UsuariosSistema.add(EliminarUsuario);
UsuariosSistema.add(ConsultarUsuario);
Barra.add(Ayuda);
Ayuda.add(AyudaGeneral);
Ayuda.add(Acercade);
//*** Se asignan las teclas calientes a las opciones del menú
Archivo.setMnemonic('A');
RegistrarAsignaturas.setMnemonic('n');
RegistrarPensum.setMnemonic('P');
Salir.setMnemonic('S');
Estudiantes.setMnemonic('E');
RegistrarEstudiante.setMnemonic('R');
CambiarEstudiante.setMnemonic('C');
EliminarEstudiante.setMnemonic('m');
ConsultarEstudiante.setMnemonic('o');
Historico.setMnemonic('H');
HistoricoCalificaciones.setMnemonic('n');
ConsultarHistorico.setMnemonic('C');
Inscripciones.setMnemonic('I');
SeleccionarAsignaturas.setMnemonic('S');
RegistrarInscripción.setMnemonic('R');
ConsultarInscripciones.setMnemonic('C');
UsuariosSistema.setMnemonic('s');
RegistrarUsuario.setMnemonic('R');
CambiarUsuario.setMnemonic('C');
EliminarUsuario.setMnemonic('E');
ConsultarUsuario.setMnemonic('o');
Ayuda.setMnemonic('u');
AyudaGeneral.setMnemonic('A');
Acercade.setMnemonic('c');
//*** Se asignan los Textos Tips a las opciones del menú
RegistrarAsignaturas.setToolTipText("Tabla
de asignaturas");
RegistrarPensum.setToolTipText("Tabla
de pensum por carrera");
Salir.setToolTipText("Salir de la aplicación");
RegistrarEstudiante.setToolTipText
("Registrar los datos personales del
estudiante");
CambiarEstudiante.setToolTipText("Cambiar
los datos personales del estudiante");
EliminarEstudiante.setToolTipText("Eliminar
los datos personales del estudiante");
ConsultarEstudiante.setToolTipText("Consultar listado de estudiantes");
HistoricoCalificaciones.setToolTipText
("Histórico de calificaciones del
estudiante");
ConsultarHistorico.setToolTipText
("Consultar el histórico de calificaciones del estudiante");
SeleccionarAsignaturas.setToolTipText
("Oferta de asignaturas para la
inscripción del estudiante");
RegistrarInscripción.setToolTipText
("Registrar y validar la inscripción
del estudiante");
ConsultarInscripciones.setToolTipText
("Consultar las inscripciones que han sido validadas");
RegistrarUsuario.setToolTipText("Registra
los datos de un usuario en el sistema");
CambiarUsuario.setToolTipText("Cambia
los datos de un usuario en el sistema");
EliminarUsuario.setToolTipText("Elimina
un usuario del sistema");
ConsultarUsuario.setToolTipText("Consultar los usuario del sistema");
AyudaGeneral.setToolTipText("Muestra
la ayuda general");
Acercade.setToolTipText("Muestra el diálogo acerca de...");
//*** Eventos producidos por las opciones del menú
//*** Cuando se pulsa la opción "Salir" ejecuta el método "CierraVentana"
Salir.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
//*** Se ejecuta el método CierraVentana
CierraVentana();
}
});
Al compilar: javac
MenuAdministrador.java
Al ejecutar: java MenuAdministrador
Se obtendrá una
ventana como la figura siguiente: