CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2ME

[菜鸟问题]JB说不能读取第二张图片,模拟器说“NullPointerException”异常,大家说怎么回事儿呢?

楼主brucetan(熊锐)2006-05-02 21:52:23 在 Java / J2ME 提问

目的是导入一张图片作背景,再导入一张图片作为角色,在屏幕里来回跑的动画;  
  如果只导入一张图片是可以实现来回跑的动画的,但是再导一张背景图片进去就会出现下面的报错……  
   
  代码如下:  
   
   
  ================  
  ok3.java  
  ================  
   
  package   ok3;  
  import   javax.microedition.lcdui.*;  
  import   javax.microedition.midlet.*;  
   
  public   class   ok3   extends   MIDlet   {  
   
      private   Canvas   canvas;  
      private   Display   display;  
   
      public   void   startApp()   throws   MIDletStateChangeException     {  
          display   =   Display.getDisplay(this);  
          canvas   =   new   ok3Displayable();  
          display.setCurrent(canvas);  
      }  
      public   void   pauseApp()   {}  
      public   void   destroyApp(boolean   bool)   throws   MIDletStateChangeException   {  
      }  
  }  
   
  =====================  
  ok3Displayable.java  
  =====================  
   
  package   ok3;  
  import   javax.microedition.lcdui.*;  
  import   java.io.*;  
   
  public   class   ok3Displayable   extends   Canvas   implements   Runnable{  
   
    private   Image[]   monkey;  
    private   int   x   =   20;//x坐标  
    private   int   y   =   120;//y坐标  
     
    public   ok3Displayable(){  
      try   {  
        monkey   =   new   Image[2];  
        monkey[0]   =   Image.createImage("/ohyeah.png");  
        monkey[1]   =   Image.createImage("/back.png");  
        }  
      catch(IOException   e)   {e.printStackTrace();}  
       
      Thread   th   =   new   Thread(this);//制作新线程      
      th.start();//开始线程    
    }  
    protected   void   paint(Graphics   g)   {  
          g.setColor(225,   255,   255);     //   red  
          g.fillRect(0,   0,   getWidth(),   getHeight());  
          g.setColor(0,   0,   0);     //   black  
          g.drawString("Monkey   moving!",10,20,0);  
          g.drawImage(monkey[1],0,0,   Graphics.HCENTER   |   Graphics.VCENTER   );  
          g.drawImage(monkey[0],x,y,   Graphics.HCENTER   |   Graphics.VCENTER   );  
        }  
    public   void   run()   {  
            while   (true){  
                y++;  
                x-=2;  
                if(x   <   0)x   =   getWidth();  
                if(y   >   getHeight())   y   =   0;  
                repaint();    
                try{      
                Thread.sleep(100);//100毫秒待机      
                }catch(InterruptedException   e){}    
            }  
    }  
  }  
   
  ==============================================  
  JB的DEBUG如下:  
   
  D:\JBuilder\jdk1.5\bin\java   -classpath   "C:\Nokia\Devices\Nokia_7210_MIDP_SDK_v1_0\tools\emulator.jar"     -Demulator.home="C:\Nokia\Devices\Nokia_7210_MIDP_SDK_v1_0"   com.nokia.phone.sdk.Emulator     -classpath   "C:\Documents   and   Settings\Administrator\jbproject\ok3\classes;C:\Nokia\Devices\Nokia_7210_MIDP_SDK_v1_0\lib\classes.zip"   -jad   "C:\Documents   and   Settings\Administrator\jbproject\ok3\jad-temp\ok3.jad"  
   
  Emulator   command:   C:\Nokia\Devices\Nokia_7210_MIDP_SDK_v1_0\bin\7210.exe   -parent_port   2810   -classpath   "C:\Nokia\Devices\Nokia_7210_MIDP_SDK_v1_0\lib\classes.zip;C:\Documents   and   Settings\Administrator\jbproject\ok3\classes;C:\Nokia\Devices\Nokia_7210_MIDP_SDK_v1_0\lib\classes.zip"   "C:\Documents   and   Settings\Administrator\jbproject\ok3\jad-temp\ok3.jad"  
   
  java.io.IOException:   Cannot   read   /back.png  
   
          at   javax.microedition.lcdui.Image.createImage(+55)  
          at   ok3.ok3Displayable.<init>(+45)  
          at   ok3.ok3.startApp(+16)  
          at   javax.microedition.midlet.MIDletProxy.startApp(+7)  
          at   com.nokia.mid.impl.isa.ui.MIDletManager.callStartApp(+4)  
          at   com.nokia.mid.impl.isa.ui.MIDletManager.activateMIDlet(+10)  
          at   com.nokia.mid.impl.isa.ui.MIDletManager.launchMIDlet(+15)  
          at   com.nokia.mid.impl.isa.ui.MIDletManager.init(+22)  
          at   com.nokia.mid.impl.isa.ui.MIDletManager.main(+41)  
   
   
  模拟器运行的时候说程序错误,点击“细节”之后显示“java/lang/NullPointerException”。  
   
  拜托大家帮我看看为什么-_-|||  
  谢谢了!!! 问题点数:50、回复次数:5Top

1 楼felixc(felixc)回复于 2006-05-02 22:50:27 得分 5

代码没什么问题.既然显示IO异常.那就是在创建图片的时候出的问题.你再仔细检查一下图片的路径和大小写.Top

2 楼brucetan(熊锐)回复于 2006-05-03 01:11:26 得分 0

大小写都一致的,路径就是和第一张图片放在RES里了呀~~Top

3 楼39827140(不想穿裤叉)回复于 2006-05-03 14:09:03 得分 0

有可能这2张图片大小不一样,你不可能把一个24*24与32*32象素的图片放到一个Imgae数组里Top

4 楼k7sem(【Conch fish】I love qing qing.)回复于 2006-05-03 14:27:37 得分 45

跟图片大小没关系。  
   
  你试一下把第一张图片改成第二张图片的名字。   读两张一样的图,名字不同,看是否可以显示。或者把画第二张图的语句注释掉。然后再找原因。Top

5 楼brucetan(熊锐)回复于 2006-05-05 22:35:24 得分 0

谢谢!按照k7sem兄的办法已经解决了!Top

相关问题

关键词

得分解答快速导航

  • 帖主:brucetan
  • felixc
  • k7sem

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo