// // Cascada.java // Copyright (c) 1996, Agustin Froufe // Todos los derechos reservados. // // No se asume ninguna responsabilidad por el uso o alteracion de este // software. Este software se proporciona COMO ES, sin garantia de ningun // tipo de su funcionamiento y en ningun caso sera el autor responsable de // daños o perjuicios que se deriven del mal uso del software, aun cuando // este haya sido notificado de la posibilidad de dicho daño. // // Compilador: javac 1.0 // Autor: Agustin Froufe // Creacion: 21-Ago-1996 20:08:32 // //-------------------------------------------------------------------------- // Esta informacion no es necesariamente definitiva y esta sujeta a cambios // que pueden ser incorporados en cualquier momento, sin avisar. //-------------------------------------------------------------------------- import java.awt.*; // Implementación de una clase que nos permite anidar menús de forma que se // vayan abriendo en función de opciones seleccionadas en el menú anterior public class Cascada extends Frame { // Constructor public Cascada() { MenuBar menub; Menu menu; Menu cMenu1; Menu cMenu2; // Fijamos el título de la ventana setTitle( "Menús en Cascada" ); // Barra de menú principal de la aplicación menub = new MenuBar(); // Primer elemento desde el menú principal menu = new Menu( "Archivo" ); // Primer desdendiente de "Archivo", que es otro menú cMenu1 = new Menu( "Abrir" ); cMenu1.add( new MenuItem( "Nuevo" ) ); cMenu1.add( new MenuItem( "Plantilla" ) ); menu.add( cMenu1 ); // Segundo descendiente que será otro menú en cascada cMenu1 = new Menu( "Imprimir" ); cMenu2 = new Menu( "Archivo" ); cMenu2.add( new MenuItem( "Guardar" ) ); cMenu2.add( new MenuItem( "Guardar como" ) ); cMenu2.add( new MenuItem( "Borrar" ) ); cMenu1.add( cMenu2 ); cMenu2 = new Menu( "Imprimir" ); cMenu2.add( new MenuItem( "Preparar" ) ); cMenu2.add( new MenuItem( "Imprimir Página" ) ); cMenu2.add( new MenuItem( "Imprimir Todo" ) ); cMenu1.add( cMenu2 ); menu.add( cMenu1 ); // Separador y opción de salida menu.addSeparator(); menu.add( new MenuItem( "Salir" ) ); // Incorporamos el primer elemento a la barra de menú menub.add( menu ); // Segundo elemento desde el menú principal menu = new Menu( "Opciones" ); // Una opción cualquiera menu.add( new MenuItem( "Revisión" ) ); // Incorporamos el segundo elemento a la barra de menú menub.add( menu ); setMenuBar( menub ); } public boolean handleEvent( Event evt ) { // Sólo trataremos el evento de salida, el resto es ejemplo puro if( Event.WINDOW_DESTROY == evt.id && this == evt.target ) System.exit( 0 ); // Los demás eventos los devolvemos a la clase superior return( super.handleEvent( evt ) ); } public boolean action( Event evt,Object obj ) { // Sólo tratamos el evento se salida de la aplicación, el // resto los propagamos hacia arriba if( evt.target instanceof MenuItem && obj.equals( "Salir" ) ) System.exit( 0 ); return( false ); } public static void main( String args[] ) { Frame frame = new Cascada(); frame.resize( 250,250 ); frame.show(); } } //------------------------------------------- Final del fichero Cascada.java