MenuList.java
上传用户:gyyuli
上传日期:2013-07-09
资源大小:3050k
文件大小:2k
源码类别:

J2ME

开发平台:

Java

  1. import javax.microedition.lcdui.*;
  2. import javax.microedition.m3g.*;
  3. class MenuList
  4.   extends List
  5.   implements CommandListener
  6. {
  7.   private final Maze3DMIDlet midlet;
  8.   private boolean gameStarted = false;
  9.   MenuList(Maze3DMIDlet midlet, boolean apiAvailable)
  10.   {
  11.     super("Maze3D", List.IMPLICIT);
  12.     this.midlet = midlet;
  13.     setFitPolicy(List.TEXT_WRAP_ON);
  14.     // in case the 3D API is not available
  15.     if (apiAvailable)
  16.     {
  17.       append("New Game", null);
  18.       append("3D Properties", null);
  19.     }
  20.     // add an exit command
  21.     addCommand(new Command("Exit", Command.EXIT, 0));
  22.     setCommandListener(this);
  23.   }
  24.   public void commandAction(Command command, Displayable displayable)
  25.   {
  26.     if (command == List.SELECT_COMMAND)
  27.     {
  28.       int index = getSelectedIndex();
  29.       switch (index)
  30.       {
  31.         case 0:
  32.           //  new game
  33.           midlet.newGame();
  34.           // add more commands the first time the game runs
  35.           if (!gameStarted)
  36.           {
  37.             insert(1, "Top view", null);
  38.             addCommand(new Command("Back", Command.BACK, 0));
  39.             gameStarted = true;
  40.           }
  41.           break;
  42.         case 1:
  43.           if (gameStarted)
  44.           {
  45.             midlet.switchView();
  46.           }
  47.           else
  48.           {
  49.             midlet.show3DProperties();
  50.           }
  51.           break;
  52.         case 2:
  53.           midlet.show3DProperties();
  54.           break;
  55.       }
  56.     }
  57.     else if (command.getCommandType() == Command.BACK)
  58.     {
  59.       midlet.showMain();
  60.     }
  61.     else if (command.getCommandType() == Command.EXIT)
  62.     {
  63.       midlet.quitApp();
  64.     }
  65.   }
  66.   void viewSwitched()
  67.   {
  68.     // switch the labels for normal/top view
  69.     if (getString(1).equals("Top view"))
  70.     {
  71.       set(1, "Normal view", null);
  72.     }
  73.     else
  74.     {
  75.       set(1, "Top view", null);
  76.     }
  77.   }
  78. }