?? stackmidlet.java
字號:
package com.j2medev.chapter3;
import java.util.Stack;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class StackMIDlet extends MIDlet{
private static Stack ui = new Stack();
private static Display display = null;
public static StackMIDlet instance = null;
public static final Command exit = new Command("exit",Command.EXIT,1);
public static final Command back = new Command("back",Command.BACK,2);
public StackMIDlet(){
instance = this;
}
public void startApp() {
if(display == null){
display = Display.getDisplay(this);
SplashCanvas splash = new SplashCanvas();
display.setCurrent(splash);
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
//進(jìn)入下一界面,并把此界面壓入棧
public static void goBack(){
ui.pop();
display.setCurrent((Displayable)ui.peek());
instance.debug();
}
//進(jìn)入下一界面,并把此界面壓入棧
public static void moveNext(Displayable displayable){
instance.addCommand(displayable);
instance.push(displayable);
display.setCurrent(displayable);
instance.debug();
}
private void addCommand(Displayable displayable){
String name = displayable.getClass().getName();
displayable.addCommand(exit);
if(!name.endsWith("MainMenu")&&!name.endsWith("WaitCanvas")){
displayable.addCommand(back);
}
}
//displayable被壓入堆棧
private void push(Displayable displayable){
String name = displayable.getClass().getName();
if(!name.endsWith("WaitCanvas")){
if(name.endsWith("MainMenu")){
if(!ui.empty()){
ui.removeAllElements();
}
}
ui.push(displayable);
}
}
//顯示一個Alert,然后進(jìn)入下一界面
public static void moveNext(Alert alert,Displayable next){
instance.addCommand(next);
instance.push(next);
display.setCurrent(alert,next);
instance.debug();
}
public static void handleCommandAction(Command cmd,Displayable displayable){
if(cmd.getCommandType()==Command.BACK){
goBack();
}else if(cmd.getCommandType()==Command.EXIT){
instance.destroyApp(false);
instance.notifyDestroyed();
}
}
//輸出到控制臺,調(diào)試堆棧內(nèi)的元素
private void debug(){
System.out.println("-- stack top --");
for(int i=instance.ui.size()-1; i>=0; i--) {
Object obj = instance.ui.elementAt(i);
System.out.println(obj.getClass().getName());
}
System.out.println("-- stack bottom --");
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -