站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题【J2ME】 Debug 笔记(二)

【J2ME】 Debug 笔记(二)

摘要: 【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

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



↑返回目录
前一篇: Nokia系列手机将支持在J2ME中获得IMEI
后一篇: 在J2ME中使用Timer和TimerTask来实现多线程