当前位置: 代码迷 >> J2ME >> 初学急求(待高手指导)java.lang.InstantiationException: Class not a MIDlet?已经写了MIDlet类,如何修改
  详细解决方案

初学急求(待高手指导)java.lang.InstantiationException: Class not a MIDlet?已经写了MIDlet类,如何修改

热度:5507   发布时间:2013-02-25 21:34:46.0
初学急求(在线等待高手指导)java.lang.InstantiationException: Class not a MIDlet?已经写了MIDlet类,怎么修改!
ExampleGameSpriteMIDlet代码:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class ExampleGameSpriteMIDlet extends MIDlet implements CommandListener
{
 private ExampleGameSprite gameCanvas; //声明游戏画布对象
 private Command exitCmd=new Command("Exit",Command.SCREEN,1); //创建退出软键
 
 public ExampleGameSpriteMIDlet()
 {
  gameCanvas=new ExampleGameSprite(); //创建游戏画布对象
  gameCanvas.addCommand(exitCmd); //向游戏画布添加退出软键
  gameCanvas.setCommandListener(this); //侦听软键事件
 }
 
 public void startApp()
 {
  gameCanvas.start(); //启动游戏线程
  Display.getDisplay(this).setCurrent(gameCanvas); //在屏幕上显示游戏画布
 }
 
 public void pauseApp()
 {
 }
 
 public void destroyApp(boolean unconditional)
 {
 }
 
 public void commandAction(Command cmd,Displayable disp)
 {
  if(cmd==exitCmd) //如果用户按下退出软键,则推出程序
  {
  System.gc();
  destroyApp(false);
  notifyDestroyed();
  }
 }
}

class ExampleGameSprite代码:
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
public class ExampleGameSprite extends GameCanvas implements Runnable

{
  
  private boolean isPlay; //isPlay标志位决定游戏线程是否运行
  private int Width,Height; //屏幕的宽度和高度
  private final static int STEP=3; //人物移动幅度
  private Sprite hero=null; //游戏精灵
  private int frameWidth,frameHeight; //精灵的帧宽度和高度
  private int lastState=-1; //游戏动作的前一状态,用来设置当前帧
  public ExampleGameSprite()
  
  {
   
  super(true); //抑制游戏键盘
  Width=getWidth(); //获取屏幕宽度
  Height=getHeight(); //获取屏幕高度
   
  try
  {
   
  Image img=Image.createImage("/sprite.png"); //加载图片资源,sprite.png大小是72(宽)X 128(高)
  hero=new Sprite(img,24,32); //创建精灵
  frameWidth=24; //帧宽度为24象素
  frameHeight=32; //帧高度为32象素
   
  }
   
  catch(Exception e)
  {
   
  e.printStackTrace(); //捕捉异常
   
  }
 
  }
  
  public void start()
  {
   
  isPlay=true;
  Thread t=new Thread(this); //创建游戏线程
  t.start(); //启动游戏线程

  }
 
  public void stop() {isPlay=false;} //停止游戏循环

  public void run()
  { //游戏循环

  Graphics g=getGraphics(); //获取Graphics对象
  int timeStep=100; //设定游戏循环执行一次所耗费的时间
   
  while(isPlay) //while(isPlay==true)
  相关解决方案