/*
*http://blog.programfan.com/blog.asp?author=qq14923349
*程序之巢制作 @J2ME计时器@
*如果有图片
*图片存在rec目录下,记得在存之前把格式转换成png,具体方法是:
1,点击开始
2,附件
3,图画板
4,打开图片
5,另存为(可以存作PNG了,不要直接改后续名,否则运行不了)
6,其他工具,可以选用PS,或者ACDSEE等等改
*/
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.*;
import java.util.*;
public class Hourmeter extends MIDlet
{
public void startApp(){
new Count(Display.getDisplay(this)).start();
}
public void pauseApp(){}
public void destroyApp(boolean e){}
class Count extends GameCanvas implements Runnable{
private Display display;
private Random rand;
private boolean Runonce=true;
private int hour,minute,second;//当前时间
private int X,Y=60;//移动框
private int sign=1;//当前第几个框
private boolean once=true;//第一次画屏
private Calendar calendar;
private boolean down3=false;//第三个框给按下
public Count(Display d){
super(true);
display=d;
display.setCurrent(this);
}
private void start(){
try{
rand=new Random();
}
catch(Exception e){
}
Thread t=new Thread(this);
t.start();
}
public void run(){
Graphics g=getGraphics();
while(Runonce){
update();
timeCount();
g=timeRect();
draw(g);
try{
Thread.sleep(100);
}
catch(Exception e){}
}
}
private void update()
{
int keyState=getKeyStates();
if((keyState&LEFT_PRESSED)!=0)
{
}
else if((keyState&RIGHT_PRESSED)!=0)
{
}
if((keyState&FIRE_PRESSED)!=0)
{
switch(sign)
{
case 1:System.out.println("你选择了1");break;
case 2:System.out.println("你选择了2");break;
case 3:introductory();down3=!down3;break;
default:;
}
}
if((keyState&UP_PRESSED)!=0)
{
Graphics g=getGraphics();
g.setColor(0xff0000);
g.fillRect(0,Y,60,20);
if(Y==60)
{draw(g);
}
else
{
Y-=20;
sign-=1;
System.out.println(sign);
draw(g);
}
}
if((keyState&DOWN_PRESSED)!=0)
{
Graphics g=getGraphics();
g.setColor(0xff0000);
g.fillRect(0,Y,60,20);
if(Y==100)
draw(g);
else{
Y+=20;
sign+=1;
System.out.println(sign);
draw(g);
}
}
}
//--------------------------------
private void timeCount(){
calendar=Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
hour=calendar.get(Calendar.HOUR_OF_DAY);
minute=calendar.get(Calendar.MINUTE);
second=calendar.get(Calendar.SECOND);
}
//--------------------------------
private Graphics timeRect(){
Graphics g=getGraphics();
g.setColor(0x008800);
g.fillRect(0,60,60,60);
g.setColor(0x000000);
g.drawRect(0,60,60,20);
g.drawRect(0,60,60,40);
g.drawRect(0,60,60,60);
g.setColor(0x0000ff);
g.drawString(" 计时开始",0,60,Graphics.TOP|Graphics.LEFT);
g.drawString(" 计时停止",0,80,Graphics.TOP|Graphics.LEFT);
g.drawString(" 关 于",0,100,Graphics.TOP|Graphics.LEFT);
if(down3==true)
introductory();
return g;
}
//--------------------------------
private void introductory(){
Graphics g=getGraphics();
g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_SMALL));
g.setColor(0x00ff00);
g.drawString("本程序由剑2008制作",20,60,Graphics.TOP|Graphics.LEFT);
g.drawString("qq14923349",20,80,Graphics.TOP|Graphics.LEFT);
g.drawString("v1.0版本",20,100,Graphics.TOP|Graphics.LEFT);
}
//--------------------------------
private void draw(Graphics g){
if(once==true){
g.setColor(0xffffff);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(0x000000);
g.drawString("@J2ME计时器@",20,20,Graphics.TOP|Graphics.LEFT);
g.drawString(""+hour+" : "+minute+" : "+second,10,40,Graphics.TOP|Graphics.LEFT);
once=false;
}
else
{g.setColor(0xffffff);
g.fillRect(10,40,120,20);
g.setColor(0x000000);
g.drawString("@J2ME计时器@",20,20,Graphics.TOP|Graphics.LEFT);
g.drawString(""+hour+" : "+minute+" : "+second,10,40,Graphics.TOP|Graphics.LEFT);
}
flushGraphics();
}
}
}
评论