package Tetris; 
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; 
/**  * <p>Title: </p>  * <p>Description: </p>  * <p>Copyright: Copyright (c) 2004</p>  * <p>Company: </p>  * @author not attributable  * @version 1.0  */ 
public class TetrisMIDlet extends MIDlet  implements CommandListener{   Display display;   TetrisGameCanvas tetrisGame; 
  Command newCommand = new Command("New Game", Command.SCREEN, 1);   Command levelCommand = new Command("Level", Command.SCREEN, 2);   Command changeCommand = new Command("Change", Command.OK, 1);   Command cancelCommand = new Command("Cancel", Command.CANCEL, 2);   Command exitCommand = new Command("Exit", Command.EXIT, 3); 
  public TetrisMIDlet() {     display = Display.getDisplay(this);     if (tetrisGame == null) {       tetrisGame = new TetrisGameCanvas();     }     tetrisGame.addCommand(newCommand);     tetrisGame.addCommand(levelCommand);     tetrisGame.addCommand(exitCommand);     tetrisGame.setCommandListener(this);   } 
  /**    * 应用程序开始运行    * @throws javax.microedition.midlet.MIDletStateChangeException    */   protected void startApp() throws javax.microedition.midlet.MIDletStateChangeException {     /**@todo Implement this javax.microedition.midlet.MIDlet abstract method*/     display.setCurrent(tetrisGame);     try {       Thread thread = new Thread(tetrisGame);       thread.start();     } catch(Error error) {       destroyApp(false);       notifyDestroyed();     }   } 
  /**    * 开始游戏等菜单命令的处理    * @param command    * @param displayable    */   public void commandAction(Command command, Displayable displayable) {     if (command == newCommand) {       tetrisGame.newGame();     }     else if (command == levelCommand) { /*      Item [] levelItem = {new Gauge("Level", true, 400, tetrisGame.getLevel())};       Form form = new Form("Change Level", levelItem);       form.addCommand(changeCommand);       form.addCommand(cancelCommand);       form.setCommandListener(this);       display.setCurrent(form); */       tetrisGame.pauseGame();       Form form = new Form("Change Level");       ChoiceGroup cg = new ChoiceGroup("Level", Choice.EXCLUSIVE);       for (int i = 1; i <= 10; i++) {         cg.append("Level " + String.valueOf(i), null);       }       cg.setSelectedIndex(10 - tetrisGame.getLevel() / 35, true);       form.append(cg);       form.addCommand(changeCommand);       form.addCommand(cancelCommand);       form.setCommandListener(this);       display.setCurrent(form);     }     else if (command == exitCommand) {       tetrisGame.exit();       destroyApp(false);       notifyDestroyed();     }     else if (command == changeCommand) {       Form form = (Form)displayable;       ChoiceGroup cg = (ChoiceGroup)form.get(0);       tetrisGame.setLevel(350 - cg.getSelectedIndex() * 35);       tetrisGame.resumeGame();       display.setCurrent(tetrisGame); /*      Form form = (Form)displayable;       Gauge gauge = (Gauge)form.get(0);       tetrisGame.setLevel(gauge.getValue());       display.setCurrent(tetrisGame); */     }     else if (command == cancelCommand) {       display.setCurrent(tetrisGame);     }   } 
  protected void pauseApp() {     /**@todo Implement this javax.microedition.midlet.MIDlet abstract method*/ //    tetrisGame.pauseGame();   } 
  protected void destroyApp(boolean parm1) {     /**@todo Implement this javax.microedition.midlet.MIDlet abstract method*/     display.setCurrent(null);     System.gc();   } } 
   
 
  |