【Java开源代码栏目提醒】:网学会员--在 Java开源代码编辑为广大网友搜集整理了:Weather.java绩等信息,祝愿广大网友取得需要的信息,参考学习。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Weather extends MIDlet implements CommandListener
{
private Display display;
private WeatherCanvas MyCanvas;
private Command cmdExit=new Command("Exit",Command.SCREEN,1);
public Weather()
{
//获取MIDlet的Display对象
display=Display.getDisplay(this);
//创建动画画布
MyCanvas=new WeatherCanvas();
//为画布添加退出软键
MyCanvas.addCommand(cmdExit);
//为画布添加软键事件监听器
MyCanvas.setCommandListener(this);
}
public void startApp() throws MIDletStateChangeException
{
//显示画布
Display.getDisplay(this).setCurrent(MyCanvas);
//启动画布线程
MyCanvas.startAnimation();
}
public void pauseApp(){}
public void destroyApp(boolean unconditional){}
public void commandAction(Command c,Displayable d)
{
if(c==cmdExit)
{
destroyApp(true);
notifyDestroyed();
}
}
class WeatherCanvas extends Canvas implements Runnable
{
//创建动画图片
private Image img[]=new Image[11];
private int currentFrame;
public WeatherCanvas()
{
try{
//加载图片资源
for(int i=1;i<12;i++)
{
img[i-1]= Image.createImage("/"+i+".png");
}
}
catch(Exception e)
{
System.out.println(e);
}
currentFrame=0;
}
public void paint(Graphics g)
{
//清空屏幕
g.setColor(0x00ffffff);
g.fillRect(0,0,getWidth(),getHeight());
//画图
g.drawImage(img[currentFrame],getWidth()/2,getHeight()/2,g.HCENTER|g.VCENTER);
}
public void startAnimation()
{
//调用重绘方法
repaint();
//请求同步
display.callSerially(this);
}
public void run()
{
try{
//休眠200毫秒
Thread.sleep(200);
//改变当前显示的图片
currentFrame=(currentFrame+1)%11;
//调用重绘方法
repaint();
//请求同步
display.callSerially(this);
}
catch(Exception e)
{
System.out.println(e);
}
}
}
}