public class Splash extends Canvas{
/**
*
*/
private static Image COVER = null;
public Splash() {
super();
try
{
COVER = Image.createImage("/src/JUJU2.gif");
}catch (IOException e)
{
// System.out.println("error");
}
// TODO Auto-generated constructor stub
}
public void paint(Graphics g)
{
//g=this.getGraphics();
int w = this.getWidth();
int h = this.getHeight();
int lgw = COVER.getWidth();
int lgh = COVER.getHeight();
g.drawImage(COVER, (w-lgw)/2,0,0);
// g.drawString("wang",0,0,0);
}
}
是一个开始画面
在Midlet 里调用是
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
display.setCurrent(splash);
try
{
Thread.sleep(2000);
}catch (InterruptedException e)
{
}
为什么会出现下面的错误
java.lang.NullPointerException
at Splash.paint(+13)
at javax.microedition.lcdui.Display.serviceRepaints(+105)
at javax.microedition.lcdui.Display$DisplayAccessor.timerEvent(+34)
at com.sun.kvem.midp.lcdui.EmulEventHandler$EventLoop.run(+545)
除了空指针异常还有程序在运行的时候后会出现Luanch error:cannot connet to the JVM
------解决方法--------------------------------------------------------
没猜错的话是 int lgw = COVER.getWidth();抛的。
是因为COVER为null;
再查:
COVER = Image.createImage("/src/JUJU2.gif");是否/src/JUJU2.gif不存在?
或应为“./src/JUJU2.gif" ----相对路径。
------解决方法--------------------------------------------------------
异常是由Splash的paint(Graphics g)方法引发的
最有可能出错的是
int lgw = COVER.getWidth();
COVER = Image.createImage("/src/JUJU2.gif");//图片只能使用PNG格式的
你可以在这句后面,加个if (null == COVER)的判断试试
------解决方法--------------------------------------------------------
在JB9下,读取资源只能读取PNG为后缀的资源
其它的IDE偶不清楚
------解决方法--------------------------------------------------------