我的MIDlet模板(不断修改更新)

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.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(){
    }

    
}
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值