📄 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) {
}
public static void goBack(){
ui.pop();
display.setCurrent((Displayable)ui.peek());
instance.debug();
}
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);
}
}
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);
}
}
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();
}
}
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 --");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -