【J2ME】 Debug 笔记(二)

   网上有人给了我一个代码,很简单,出于初学,我看了又看,编译了一下,代码如下,错误如下:

MyMIDlet .java

package j2meprj;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MyMIDlet extends MIDlet {
  private static MyMIDlet instance;
  private Displayable1 displayable = new Displayable1();

  /** Constructor */
  public MyMIDlet() {
    instance = this;
  }

  /** Main method */
  public void startApp() {
    Display.getDisplay(this).setCurrent(displayable);
  }

  /** Handle pausing the MIDlet */
  public void pauseApp() {
  }

  /** Handle destroying the MIDlet */
  public void destroyApp(boolean unconditional) {
  }

  /** Quit the MIDlet */
  public static void quitApp() {
    instance.destroyApp(true);
    instance.notifyDestroyed();
    instance = null;
  }

}

Displayable1.java

package j2meprj;

import javax.microedition.lcdui.*;
public class Displayable1 extends Form implements CommandListener {
  /** Constructor */
  public Displayable1() {
    super("Displayable Title");
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
public void paint (Graphics g){
    g.setColor(255,255,255);
    g.fillRect(0,0,getWidth(),getHeight());
    g.setColor(0,0,0);
    g.drawString("Hello World",50,100,Font.SIZE_MEDIUM);
  }
  /**Component initialization*/
  private void jbInit() throws Exception {
    // Set up this Displayable to listen to command events
    setCommandListener(this);
    // add the Exit command
    addCommand(new Command("Exit", Command.EXIT, 1));
  }

  /**Handle command events*/
  public void commandAction(Command command, Displayable displayable) {
    /** @todo Add command handling code */
    if (command.getCommandType() == Command.EXIT) {
// stop the MIDlet
      MyMIDlet.quitApp();
    }
  }

}

编译结果:

告诉我没有找到MyMIDlet  类

没有找到MyMIDlet 类,可能是因为没有放在一个包里,如果在一个包里应该没有问题,后来我试过,可以.

首先我去掉了package j2meprj; --- 瞎搞嘛

发现可以编译通过,但却只有Exit这个按钮,没有要出现的Hello World

然后, 把Form 替换成Canvas,^_^,把Displayable1()构造函数中的super去掉

结果就成了,Hello World 出来了,背景颜色也可以由我来调了

没有问题的代码:

MyMIDlet .java

package j2meprj;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

MyMIDlet extends MIDlet {
  private static MyMIDlet instance;
  private Displayable1 displayable = new Displayable1();

  /** Constructor */
  public MyMIDlet() {
    instance = this;
  }

  /** Main method */
  public void startApp() {
    Display.getDisplay(this).setCurrent(displayable);
  }

  /** Handle pausing the MIDlet */
  public void pauseApp() {
  }

  /** Handle destroying the MIDlet */
  public void destroyApp(boolean unconditional) {
  }

  /** Quit the MIDlet */
  public static void quitApp() {
    instance.destroyApp(true);
    instance.notifyDestroyed();
    instance = null;
  }

}

Displayable1.java

package j2meprj;

import javax.microedition.lcdui.*;
public class Displayable1 extends Canvas implements CommandListener {
  /** Constructor */
  public Displayable1() {
    //super("Displayable Title");
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
public void paint (Graphics g){
    g.setColor(255,255,255);
    g.fillRect(0,0,getWidth(),getHeight());
    g.setColor(0,0,0);
    g.drawString("Hello sss World",50,100,Font.SIZE_MEDIUM);
  }
  /**Component initialization*/
  private void jbInit() throws Exception {
    // Set up this Displayable to listen to command events
    setCommandListener(this);
    // add the Exit command
    addCommand(new Command("Exit", Command.EXIT, 1));
  }

  /**Handle command events*/
  public void commandAction(Command command, Displayable displayable) {
    /** @todo Add command handling code */
    if (command.getCommandType() == Command.EXIT) {
// stop the MIDlet
      MyMIDlet.quitApp();
    }
  }

}

OK now

有点菜,不能讲出原因,瞎琢磨贝

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值