- 论坛徽章:
- 0
|
平台搭建好了,不能满足于helloworld吧,于是开始继续看《Java手机游戏实例手册》。今天是Image类和Canvas类的使用。把书上的代码copy下来了。 MyCartoonMidlet.java:(主程序)
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
public class MyCartoonMidlet extends MIDlet {
public MainCanvas m_MainCanvas;
public MyCartoonMidlet() {
super();
// TODO Auto-generated constructor stub
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
m_MainCanvas = new MainCanvas();
Display.getDisplay(this).setCurrent(m_MainCanvas);
while(true){
m_MainCanvas.repaint();
}
}
}
MainCanvas.java:(自定义类MainCanvas)
import java.io.IOException;
import javax.microedition.lcdui.*;
public class MainCanvas extends Canvas{
public Image m_Image;
MainCanvas(){
try{
m_Image=Image.createImage("/zjl_24.png");
}
catch(IOException e){}
}
protected void paint(Graphics g) {
// TODO Auto-generated method stub
g.drawImage(m_Image, 0, 0, Graphics.TOP|Graphics.LEFT);
}
}
运行的时候出现NullPointerException,因为m_Image=Image.createImage("/zjl_24.png")总是返回null。这说明图像没有成功创建。原来是图像文件位置没放对,书上是老版本位置不同。我把文件放到res目录下面(src目录下面也是可以的),然后右键点项目文件,选择refresh刷新(重要!)。刷新后会自动在bin目录下也生成同一个图像文件。于是可以成功运行,显示出了图片
ps.j2me操作的图像都是png格式的。大分辨率的图像只会显示一部分出来。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/65859/showart_676857.html |
|