Вступление
Примеры | Словарь |Вопросы
Sun Microsystems

Примеры программирования на Java

Меню
(menu.java)

Описание апплета
Пример работы апплета

import java.awt.*;
import java.applet.*;

//=====================================

	class menuframe extends Frame
		 {
		   String msg = " ";
		   CheckboxMenuItem debug, test;
		   
		  menuframe(String title)
		  {
		     super(title);
		 
		 //Создание строки меню и добавление ее к рамке		   
		   MenuBar menubar = new MenuBar();
		   setMenuBar(menubar);
		   
		   //Создание элементов меню
		   Menu file = new Menu("File");
		   file.add(new MenuItem("New"));
		   file.add(new MenuItem("Open..."));
		   file.add(new MenuItem("Save"));
		   file.add(new MenuItem("Close"));
		   file.add(new MenuItem("-"));
		   file.add(new MenuItem("Quit..."));
		   menubar.add(file);
		   
		   Menu edit = new Menu("Edit");
		   edit.add(new MenuItem("Cut"));
		   edit.add(new MenuItem("Copy"));
		   edit.add(new MenuItem("-"));
		  
		   Menu sub = new Menu("Special");
		  // Создание вложенных элементов меню 
		   sub.add(new MenuItem("First"));
		   sub.add(new MenuItem("Second"));
		   edit.add(sub);
		   
		   //Создание переключаемых элементов меню
		   debug = new CheckboxMenuItem("Debug");
		   edit.add(debug);
		   test = new CheckboxMenuItem("Testing");
		   edit.add(test);
		   
		   menubar.add(edit);
		  }
		  
	   // Сокрытие окна при завершении работы программы
	public boolean handleEvent(Event evtObj)
		 {
		   if (evtObj.id == Event.WINDOW_DESTROY)
		   {
		     hide();
		     return true;
		   }
		  return super.handleEvent(evtObj);
		 }
	
     		//Вывод на экран выбранного пункта		 
	public boolean action(Event evtObj, Object arg)
		{
		  if(evtObj.target instanceof MenuItem)
		   {
		   msg = " You selected ";
		   
		   if (arg.equals("New"))
		   msg += "New.";
		   else if (arg.equals("Open..."))
		   msg += "Open.";
		   else if (arg.equals("Save"))
		   msg += "Save.";
		   else if (arg.equals("Close"))
		   msg += "Close.";
		   else if (arg.equals("Quit..."))
		   {
		   this.hide(); // Сокрытие окна
		   handleEvent = true;
		   }
		   else if (arg.equals("Edit"))
		   msg += "Edit.";
		   else if (arg.equals("Cut"))
		   msg += "Cut.";
		   else if (arg.equals("Copy"))
		   msg += "Copy.";
		   else if (arg.equals("First"))
		   msg += "First.";
		   else if (arg.equals("Second"))
		   msg += "Second.";
		   else if (arg.equals("Debug"))
		   msg += "Debug.";
		   else if (arg.equals("Testing"))
		   msg += "Testing.";
		   
		   repaint();
		   return true;
		   
		  }
		 return false;
		}
		
	public void paint(Graphics g)
	  {
	    g.drawString(msg, 10,140);
	    
	    if(debug.getState()) // Оценка статуса переключаемых элементов
	      g.drawString("Debug is on.", 10, 160);
	    else
	      g.drawString("Debug is off.", 10, 160);
	      
	    if(test.getState())
	      g.drawString("Testing is on.", 10, 180);
	    else
	      g.drawString("Testing is off.", 10, 180);
	      
	    }
	   }
	   
	public class menu extends Applet
		{
		  Frame f;
		  
		  public void init()
		   {
		     f = new menuframe("Menu"); 
		      int width = Integer.parseInt(getParameter("width"));
		      int height =  Integer.parseInt(getParameter("height"));
		     
		     f.resize(width,height);//Установка размеров всплывающего
		     			    // окна
		     f.show();
		   }
		  //Отображение окна при  запуске аплета
		   public void start()
		   {
		    f.show();
		   }
		   
		   //Удаление окна при остановке аплета
		   public void stop()
		   {
		   f.hide();
		   }
		   
		   
		   
		   
		 }