不断播放音乐和改变颜色动态滚动节日贺词的J2me程序

来源:互联网 发布:效果器软件 编辑:程序博客网 时间:2024/04/29 10:53

 

import javax.microedition.lcdui.* ;
import javax.microedition.lcdui.game.* ;
import java.util.*;


public class MyGameCanvas extends GameCanvas
        implements Runnable {
    public MyGameCanvas() {
        super(true) ;
    }
    boolean conti = true ;
    int rate = 50 ;
    public void run() {
        long st = 10 ;
        long et =10 ;
        Graphics g = getGraphics() ;
        while(conti) {
            st = System.currentTimeMillis() ;
            render(g) ;
            et = System.currentTimeMillis() ;
            if((et-st)<rate) {
                try {
                    Thread.sleep(rate-(et-st));
                }catch(Exception exp){}
            }
        }
    }
    int x = 50;
    int y = 50 ;
    int red=0;
    int green=0;
    int blue=0;
    public void render(Graphics g) {
        g.setColor(255,255,255);
        g.fillRect(0,0,getWidth(),getHeight());
        g.setColor(red,green,blue);
        Random rdm=new Random();
        red=(rdm.nextInt()>>>1)%255;
        green=(rdm.nextInt()>>>1)%255;
        blue=(rdm.nextInt()>>>1)%255;
        Font font=Font.getFont(Font.FACE_SYSTEM,Font.STYLE_ITALIC,Font.SIZE_LARGE);
        g.setFont(font);
       
        g.drawString("元旦快乐",x,y,0);
        ++x;
        if(x>getWidth())
            x=0;
        flushGraphics() ;
       
       
       
       
    }
   
   
   
    public void start() {
        Thread t = new Thread(this) ;
        t.start();
    }
    public void exit() {
        conti = false ;
    }
    public void keyPressed(int keycode) {
        System.out.println("按键事件");
    }

 

 

 

 

import java.io.*;
import javax.microedition.midlet.* ;
import javax.microedition.lcdui.* ;
import javax.microedition.media.*;
import javax.microedition.media.control.*;
public class GameMIDlet extends MIDlet
implements CommandListener
{
        Display display ;
        public GameMIDlet()
        {
                display = Display.getDisplay(this) ;
        }
        MyGameCanvas mgc ;
        //MyGameWithInputCanvas mgc ;
        //MyGameWithSpriteCanvas mgc ;
        //MyGameWithSpriteCanvas1 mgc ;
       // MyGameWithSpriteCanvas2 mgc ;
        public void startApp()
        {
                if(mgc==null)
                {
                        mgc = new MyGameCanvas();
                        //mgc = new MyGameWithInputCanvas();
                        //mgc = new MyGameWithSpriteCanvas();
                        //mgc = new MyGameWithSpriteCanvas1();
                        //mgc = new MyGameWithSpriteCanvas2();
                        mgc.addCommand(new Command("开始", Command.OK, 1));
                        mgc.addCommand(new Command("结束", Command.EXIT, 2));
                        mgc.setCommandListener(this);
                        display.setCurrent(mgc);
                }
        }
        public void commandAction(Command c,Displayable s)
        {
                String cmd = c.getLabel() ;
                if(cmd.equals("开始"))
                {
                        mgc.start() ;
                        play();
                }else if(cmd.equals("结束"))
                {
                        mgc.exit() ;
                       notifyDestroyed() ;
                }

        }
        public void pauseApp()
        {

        }
        public void destroyApp(boolean unconditional)
        {
        }
        private void play(){
            try{
                InputStream is=getClass().getResourceAsStream("/audio.wav");
                Player player=Manager.createPlayer(is,"audio/X-wav");
                player.setLoopCount(-1);
                player.start();
               
            }
            catch(IOException ioe){
                System.out.println(ioe.getMessage());
               
            }
            catch(IllegalArgumentException ise){
                System.out.println(ise.getMessage());
            }
            catch(MediaException me){
                System.out.println(me.getMessage());
            }
        }
}