平台搭建好了,不能满足于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格式的。大分辨率的图像只会显示一部分出来。
阅读(600) | 评论(0) | 转发(0) |