读书人

HelloMIDlet的小疑点

发布时间: 2012-01-09 21:05:42 作者: rapoo

HelloMIDlet的小问题
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


public class HelloMIDlet extends MIDlet
{
private Display display;
public HelloWorld() {

super ();

// TODO 自动生成构造函数存根

Form form = new Form( "Hello World ");

form.append( "Welcome to J2ME World! ");

Display.getDisplay(this).setCurrent(form);

}


public void startApp()
{
System.out.println( "startApp Called ") ;
Form t = new Form( "画面 ");
display.setCurrent(t);
}
public void pauseApp()
{
System.out.println( "pauseApp Called ") ;
}
public void destroyApp(boolean unconditional)
{
System.out.println( "destroyApp Called : " + unconditional) ;
}
}
错误:
Project "HelloMIDlet " loaded
Project settings saved
Building "HelloMIDlet "
C:\WTK25\apps\HelloMIDlet\src\HelloMIDlet.java:8: 方法声明无效;需要返回类型
public HelloWorld() {
^
1 错误
com.sun.kvem.ktools.ExecutionException
Build failed


修改下就给分


[解决办法]
出售手机游戏。QQ:779856263
[解决办法]
display.setCurrent(t);
还没有创建,就直接使用了,所以空指针了


改下试试:
display = Display.getDisplay(this);
display.setCurrent(t);
[解决办法]
同意楼上
[解决办法]
不明白你是什么意图。首先,运行进入构造函数执行。
这里边有个form
Form form = new Form( "Hello World ");

form.append( "Welcome to J2ME World! ");

Display.getDisplay(this).setCurrent(form);

并且你让他显示出来。


之后呢?程序执行进入startApp里

Form t = new Form( "画面 ");
display.setCurrent(t);

又建个空Form t干嘛?
你把上边这两句删掉吧。已经可以实现Hello World的目的了。



[解决办法]
你在public void startApp()
{
System.out.println( "startApp Called ") ;
Form t = new Form( "画面 ");
display.setCurrent(t);
}
中调用display,但是这个东西没有被创建,使用前,需要通过display = Display.getDisplay(this);来获得,即可使用了
[解决办法]
1)进入构造函数执行。显示“Welcome to J2ME World!”

执行完之后立马执行2):

2)进入startApp(),显示Form内容“画面”。

这两个之间的时间间隔太短了,一闪而过。建议把stratApp()方法中From和显示注释掉,就出来了!
[解决办法]
同意楼上

[解决办法]
哈哈

读书人网 >J2ME开发

热点推荐