import
javax.microedition.midlet.
*
;
import javax.microedition.lcdui. * ;
public classs MiracleMIDlet extends MIDlet {
/* 这个对象是每个J2ME程序必有的,代表设备,一般设置为private */
private Display display;
/*如果要在低级界面上绘制东西,这个Canvas对象是必须有的,一般设置为private */
private MiracleCanvas canvas;
/* midlet的构造方法,在这里做下面这些操作:
1、创建canvas对象,把midlet引用传递进去;
2、做其他初始化工作。
*/
public MiracleMIDlet(){
canvas = new MiracleCanvs(this);
init();
}
/*其他初始化工作*/
private void init(){
}
/*获取display并setCurrent*/
protected void startApp(){
display = Display.getDisplay(this);
display.setCurrent(canvas);
}
/*处理来电及其他系统事件需要暂停程序运行 */
protected void pauseApp(){
}
protected void destroyApp(boolean unconditional){
}
/* 退出程序 */
public void exit(){
destroyApp(true);
notifyDestroyed();
}
}
import javax.microedition.lcdui. * ;
public classs MiracleMIDlet extends MIDlet {
/* 这个对象是每个J2ME程序必有的,代表设备,一般设置为private */
private Display display;
/*如果要在低级界面上绘制东西,这个Canvas对象是必须有的,一般设置为private */
private MiracleCanvas canvas;
/* midlet的构造方法,在这里做下面这些操作:
1、创建canvas对象,把midlet引用传递进去;
2、做其他初始化工作。
*/
public MiracleMIDlet(){
canvas = new MiracleCanvs(this);
init();
}
/*其他初始化工作*/
private void init(){
}
/*获取display并setCurrent*/
protected void startApp(){
display = Display.getDisplay(this);
display.setCurrent(canvas);
}
/*处理来电及其他系统事件需要暂停程序运行 */
protected void pauseApp(){
}
protected void destroyApp(boolean unconditional){
}
/* 退出程序 */
public void exit(){
destroyApp(true);
notifyDestroyed();
}
}
import
javax.microedition.midlet.
*
;
import javax.microedition.lcdui. * ;
public class MiracleCanvas extends Canvas implements CommandListener,Runnable {
/*这个midlet的引用是必须的,因为要在canvas类中调用midlet的退出程序的方法*/
MiracleMIDlet parent;
/*屏幕的width,height*/
int width,height;
/* 如果要在一个单独的线程中做一些工作,可以声明一个Thread对象*/
Thread thread;
/* 按钮 */
private Command exitCmd = new Command("Exit", Command.EXIT, 1){
/*传入midlet引用 ,其他初始化工作*/
public MiracleCanvas(MiracleMIDlet midlet){
parent = midlet;
init();
}
/*其他初始化工作*/
private void init(){
setFullScreenMode(true);
width = getWidth();
height = getHeight();
addCommand(exitCmd);
setCommandListener(this);
/*this表示把当前的runnable引用*/
thread = new Thread(this);
thread.start();
}
/*实现Runnable接口,就必须要实现这个方法*/
public void run(){
while(true){
repaint();
try{
Thread.sleep(500);
}catch(Exception e){
}
if(isBreak(){
break;
}
}
}
/*需要中止run循环时返回true*/
public boolean isBreak(){
}
/* canvas的重要方法,绘制东西到canvas上*/
public void paint(){
}
/*如果实现的CommandListener接口,这个方法是必须要实现的方法*/
public void CommandAction(Command c, Displayable s){
if(c==exitCmd){
parent.exit();
}
}
/*按键处理*/
public void keyPressed(int keyCode){
int action = getGameAction(keyCode);
switch(action){
case Canvas.UP:
tips = "UP";
break;
case Canvas.DOWN:
tips = "DOWN";
break;
case Canvas.LEFT:
tips = "LEFT";
break;
case Canvas.RIGHT:
tips = "RIGHT";
break;
case Canvas.FIRE:
tips = "FIRE";
break;
}
}
/*
调用时机:
1、在程序启动后,此方法会在startApp()之前被调用一次;
2、来电事件结束,此方法会再次被调用一次,然后再次调用startApp()方法
*/
public void showNotify(){
}
/*系统由于来电等系统事件时,此方法会被调用,紧接着调用midlet的pauseApp()方法*/
public void hideNotify(){
}
}
import javax.microedition.lcdui. * ;
public class MiracleCanvas extends Canvas implements CommandListener,Runnable {
/*这个midlet的引用是必须的,因为要在canvas类中调用midlet的退出程序的方法*/
MiracleMIDlet parent;
/*屏幕的width,height*/
int width,height;
/* 如果要在一个单独的线程中做一些工作,可以声明一个Thread对象*/
Thread thread;
/* 按钮 */
private Command exitCmd = new Command("Exit", Command.EXIT, 1){
/*传入midlet引用 ,其他初始化工作*/
public MiracleCanvas(MiracleMIDlet midlet){
parent = midlet;
init();
}
/*其他初始化工作*/
private void init(){
setFullScreenMode(true);
width = getWidth();
height = getHeight();
addCommand(exitCmd);
setCommandListener(this);
/*this表示把当前的runnable引用*/
thread = new Thread(this);
thread.start();
}
/*实现Runnable接口,就必须要实现这个方法*/
public void run(){
while(true){
repaint();
try{
Thread.sleep(500);
}catch(Exception e){
}
if(isBreak(){
break;
}
}
}
/*需要中止run循环时返回true*/
public boolean isBreak(){
}
/* canvas的重要方法,绘制东西到canvas上*/
public void paint(){
}
/*如果实现的CommandListener接口,这个方法是必须要实现的方法*/
public void CommandAction(Command c, Displayable s){
if(c==exitCmd){
parent.exit();
}
}
/*按键处理*/
public void keyPressed(int keyCode){
int action = getGameAction(keyCode);
switch(action){
case Canvas.UP:
tips = "UP";
break;
case Canvas.DOWN:
tips = "DOWN";
break;
case Canvas.LEFT:
tips = "LEFT";
break;
case Canvas.RIGHT:
tips = "RIGHT";
break;
case Canvas.FIRE:
tips = "FIRE";
break;
}
}
/*
调用时机:
1、在程序启动后,此方法会在startApp()之前被调用一次;
2、来电事件结束,此方法会再次被调用一次,然后再次调用startApp()方法
*/
public void showNotify(){
}
/*系统由于来电等系统事件时,此方法会被调用,紧接着调用midlet的pauseApp()方法*/
public void hideNotify(){
}
}