网上有人给了我一个代码,很简单,出于初学,我看了又看,编译了一下,代码如下,错误如下:
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
有点菜,不能讲出原因,瞎琢磨贝