首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

图片处理报空指针异常和Luanch error:cannot connet to the JVM错误

2014-01-26 
public class Splash extends Canvas{/****/private static Image COVER nullpublic Splash() {super()

 
  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偶不清楚
------解决方法--------------------------------------------------------