home *** CD-ROM | disk | FTP | other *** search
/ Freesoft 1997 May / Freesoft_1997-05_cd.bin / recenz / PROGRAM / JAVADRAW / iavadraw301_inst.exe / data.z / MenuWindow.java < prev    next >
Text File  |  1997-05-20  |  4KB  |  130 lines

  1. /*
  2.  * Copyright (c) 1995, 1996 Sun Microsystems, Inc. All Rights Reserved.
  3.  *
  4.  * Permission to use, copy, modify, and distribute this software
  5.  * and its documentation for NON-COMMERCIAL purposes and without
  6.  * fee is hereby granted provided that this copyright notice
  7.  * appears in all copies. Please refer to the file "copyright.html"
  8.  * for further important copyright and licensing information.
  9.  *
  10.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  11.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  12.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  13.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  14.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  15.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  16.  */
  17. import java.awt.*;
  18.  
  19. public class MenuWindow extends Frame {
  20.     boolean inAnApplet = true;
  21.     TextArea output;
  22.  
  23.     public MenuWindow() {
  24.         MenuBar mb;
  25.         Menu m1, m2, m3, m4, m4_1, m5;
  26.         MenuItem mi1_1, mi1_2, mi3_1, mi3_2, mi3_3, mi3_4,
  27.                  mi4_1_1, mi5_1, mi5_2;
  28.         CheckboxMenuItem mi2_1;
  29.  
  30.         output = new TextArea(5, 30);
  31.         output.setEditable(false);
  32.         setLayout(new BorderLayout()); //give max space to the output
  33.         add("Center", output);
  34.  
  35.         //Build the menu bar.
  36.         mb = new MenuBar();
  37.         setMenuBar(mb);
  38.  
  39.         //Build first menu in the menu bar.
  40.     //Specifying the second argument as true
  41.     //makes this a tear-off menu.
  42.         m1 = new Menu("Menu 1", true);
  43.         mb.add(m1);
  44.         mi1_1 = new MenuItem("Menu Item 1_1");
  45.         m1.add(mi1_1);
  46.         mi1_2 = new MenuItem("Menu Item 1_2");
  47.         m1.add(mi1_2);
  48.  
  49.         //Build help menu.
  50.         m5 = new Menu("Menu 5");
  51.         mb.add(m5); //just setting the help menu doesn't work; must add it
  52.         mb.setHelpMenu(m5);
  53.         mi5_1 = new MenuItem("Menu Item 5_1");
  54.         m5.add(mi5_1);
  55.         mi5_2 = new MenuItem("Menu Item 5_2");
  56.         m5.add(mi5_2);
  57.  
  58.         //Build second menu in the menu bar.
  59.         m2 = new Menu("Menu 2");
  60.         mb.add(m2);
  61.         mi2_1 = new CheckboxMenuItem("Menu Item 2_1");
  62.         m2.add(mi2_1);
  63.  
  64.         //Build third menu in the menu bar.
  65.         m3 = new Menu("Menu 3");
  66.         mb.add(m3);
  67.         mi3_1 = new MenuItem("Menu Item 3_1");
  68.         m3.add(mi3_1);
  69.         mi3_2 = new MenuItem("Menu Item 3_2");
  70.         m3.add(mi3_2);
  71.         m3.addSeparator();
  72.         mi3_3 = new MenuItem("Menu Item 3_3");
  73.         m3.add(mi3_3);
  74.         mi3_4 = new MenuItem("Menu Item 3_4");
  75.         mi3_4.disable();
  76.         m3.add(mi3_4);
  77.  
  78.         //Build fourth menu in the menu bar.
  79.         m4 = new Menu("Menu 4");
  80.         mb.add(m4);
  81.         m4_1 = new Menu("Submenu 4_1");
  82.         m4.add(m4_1);
  83.         mi4_1_1 = new MenuItem("Menu Item 4_1_1");
  84.         m4_1.add(mi4_1_1);
  85.     }
  86.  
  87.     public boolean handleEvent(Event event) {
  88.         if (event.id == Event.WINDOW_DESTROY) {
  89.             if (inAnApplet) {
  90.                 dispose();
  91.             } else {
  92.                 System.exit(0);
  93.             }
  94.         }   
  95.         return super.handleEvent(event);
  96.     }
  97.  
  98.     public boolean action(Event event, Object arg) {
  99.         String str = "Action detected";
  100.  
  101.         if (event.target instanceof MenuItem) {
  102.             MenuItem mi=(MenuItem)(event.target);
  103.             str += " on " + arg;
  104.             if (mi instanceof CheckboxMenuItem) {
  105.                 str += " (state is " 
  106.                            + ((CheckboxMenuItem)mi).getState()
  107.                        + ")";
  108.             }
  109.             MenuContainer parent = mi.getParent();
  110.             if (parent instanceof Menu) {
  111.                 str += " in " + ((Menu)parent).getLabel();
  112.             } else {
  113.                 str += " in a container that isn't a Menu";
  114.             }
  115.         }
  116.         str += ".\n";
  117.         output.appendText(str);
  118.         return true;
  119.     }
  120.  
  121.     public static void main(String[] args) {
  122.         MenuWindow window = new MenuWindow();
  123.         window.inAnApplet = false;
  124.  
  125.         window.setTitle("MenuWindow Application");
  126.     window.pack();
  127.         window.show();
  128.     }
  129. }
  130.