Java partiendo de Cero - Menú a la Java
Curso gratis creado por Jorge Bourdette. Extraido de: http://www.publispain.com/supertutoriales
26 de Agosto de 2005
Java, Programación web
50 - Menú a la Java
Bueno, lo primero que vamos a ver son los menús.
La barra de menú está compuesta por menúes, que a su vez están compuestos de ítems (que pueden también ser menúes). Por ejemplo la barra de menú la declaramos con:
MenuBar barraMenu = new MenuBar();
y le agregamos los menúes Archivo y Edit (que habremos creado previamente) con:
barraMenu.add(menuArchivo);
barraMenu.add(menuEdit);
Finalmente la declaramos como EL menú de la ventana (Frame):
setMenuBar(barraMenu);
Cada uno de los menús los declaramos previamente:
Menu menuArchivo = new Menu("&Archivo");
...
Menu menuEdit = new Menu("&Edit");
Noten que el "&" no se visualiza, sino que la letra que le sigue aparece subrayada: Archivo, Edit. Esto permite que se pueda seleccionar el menú tanto con el mouse como con la tecla alt- o meta-, seguida de la tecla subrayada.
A su vez, el método add está presente también en la clase Menú y nos permite agregar los ítems:
mArchivoAbrir = new MenuItem("&Abrir...");
mArchivoGrabar = new MenuItem("&Grabar...");
mArchivoSalir = new MenuItem("&Salir");
menuArchivo.add(mArchivoAbrir);
menuArchivo.add(mArchivoGrabar);
menuArchivo.add(new MenuItem("-"));
menuArchivo.add(mArchivoSalir);
A estos ítems los hemos declarado como globales en la clase para usarlos luego en los eventos. Noten además que
menuArchivo.add(new MenuItem("-"));
no agrega un ítem al menú sino una línea de separación, y no necesitamos crearlo como objeto permanente.
Si miramos la arquitectura de las clases, tanto MenuBar como MenuItem descienden de MenuComponent. A su vez, Menu desciende de MenuItem, por lo que implementa los mismos métodos y vamos a lo que decíamos antes: un menú puede ser un ítem de otro menú, y así sucesivamente tantos subniveles de menús como queramos.
Finalmente, en nuestro manejador de eventos simplemente necesitamos verificar si se eligió un ítem probando si el evento ocurrió sobre el ítem determinado:
if ((e.id
if (e.targetmArchivoAbrir) CargarArchivo();
................
mEditTodo) contenido.selectAll();
En resumen lo que hago es:
En todos los casos, si se modifica el texto del contenido lo indico poniendo editado en true; lo mismo si presiono una tecla sobre el área de edición:
if ((e.id
Un par de aclaraciones:
La barra de menú está compuesta por menúes, que a su vez están compuestos de ítems (que pueden también ser menúes). Por ejemplo la barra de menú la declaramos con:
MenuBar barraMenu = new MenuBar();
y le agregamos los menúes Archivo y Edit (que habremos creado previamente) con:
barraMenu.add(menuArchivo);
barraMenu.add(menuEdit);
Finalmente la declaramos como EL menú de la ventana (Frame):
setMenuBar(barraMenu);
Cada uno de los menús los declaramos previamente:
Menu menuArchivo = new Menu("&Archivo");
...
Menu menuEdit = new Menu("&Edit");
Noten que el "&" no se visualiza, sino que la letra que le sigue aparece subrayada: Archivo, Edit. Esto permite que se pueda seleccionar el menú tanto con el mouse como con la tecla alt- o meta-, seguida de la tecla subrayada.
A su vez, el método add está presente también en la clase Menú y nos permite agregar los ítems:
mArchivoAbrir = new MenuItem("&Abrir...");
mArchivoGrabar = new MenuItem("&Grabar...");
mArchivoSalir = new MenuItem("&Salir");
menuArchivo.add(mArchivoAbrir);
menuArchivo.add(mArchivoGrabar);
menuArchivo.add(new MenuItem("-"));
menuArchivo.add(mArchivoSalir);
A estos ítems los hemos declarado como globales en la clase para usarlos luego en los eventos. Noten además que
menuArchivo.add(new MenuItem("-"));
no agrega un ítem al menú sino una línea de separación, y no necesitamos crearlo como objeto permanente.
Si miramos la arquitectura de las clases, tanto MenuBar como MenuItem descienden de MenuComponent. A su vez, Menu desciende de MenuItem, por lo que implementa los mismos métodos y vamos a lo que decíamos antes: un menú puede ser un ítem de otro menú, y así sucesivamente tantos subniveles de menús como queramos.
Finalmente, en nuestro manejador de eventos simplemente necesitamos verificar si se eligió un ítem probando si el evento ocurrió sobre el ítem determinado:
if ((e.id
Event.WINDOW_DESTROY)||(e.target
mArchivoSalir)) {if (editado) System.out.println("Pedir confirmación!\n");
if (enApplet) dispose();
else System.exit(0);
}if (enApplet) dispose();
else System.exit(0);
if (e.target
mArchivoAbrir) CargarArchivo();
................
if (e.target
mEditTodo) contenido.selectAll();
En resumen lo que hago es:
- Si eligió Archivo/Salir (o alt-F4 o lo que sea) salgo del programa
- Si eligió Archivo/Abrir, llamo al método CargarArchivo
- Si eligió Archivo/Grabar, llamo al método GrabarArchivo
- Si eligió Edit/Cortar copio el texto seleccionado a mi clipboard y borro la selección
- Si eligió Edit/Copiar sólo copio el texto seleccionado a mi clipboard
- Si eligió Edit/Pegar borro el texto seleccionado e inserto el de mi clipboard
- Si eligió Edit/Seleccionar_todo marco todo el texto
En todos los casos, si se modifica el texto del contenido lo indico poniendo editado en true; lo mismo si presiono una tecla sobre el área de edición:
if ((e.id
Event.KEY_PRESS)&&(e.target
contenido)) editado=true;Un par de aclaraciones:
- getSelectionStart() y getSelectionEnd() marcan los límites del texto seleccionado (si no lo hay, son iguales).
- getSelectedText() devuelve el texto seleccionado en el TextArea.
- replaceText() reemplaza una parte (o todo) del TextArea por un String.
- insertText() inserta un String en un lugar determinado del TextArea.
- selectAll() selecciona todo el texto del TextArea.
- MenuItem.enable() habilita un ítem de menú. Lo utilizo para habilitar Edit/Pegar sólo luego de cortar o copiar algo a mi clipboard.
- En el caso del ítem Archivo/Grabar, lo habilito o no dependiendo de la variable editado, utilizando la otra forma de enable: MenuItem.enable(boolean).
Valora este capítulo:
Autor y licencia de 'Java partiendo de Cero - Menú a la Java'
|
Opiniona sobre 'Java partiendo de Cero - Menú a la Java' (74)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este curso gratis |
Wikis relacionados con 'Java partiendo de Cero - Menú a la Java'
Amplio tutorial de Java para empezar a trabajar y ampliar conocimientos de este lenguaje.
Si su programa es software libre, básicamente es ético--pero hay una trampa de la que...
Más »
En el mundo de los Incas, Mayas y Aztecas, el tiempo no es concebido proceder...
Más »
Jakarta es un nuevo paso dentro del desarrollo de la tecnología orientada a software de...
Más »
Partiendo del cine mudo como documento histórico y subrayando el valor artístico de la música...
Más »

