LWUIT TextArea NullPointerException

时间:2012-11-16 02:28:10

标签: java-me lwuit

我运行LWUITDemo,有些UI无法显示成功。所有这些都是Form包含的TextArea。如果我将TextArea更改为Label,它运行良好。

抱歉,我在诺基亚s40 sdk 2.0中运行它。当我运行包含TextArea的大多数代码时,会出现异常;

代码(来自LWUITDemo):

Form aboutForm = new Form("About");
aboutForm.setScrollable(true);
aboutForm.setLayout(new BorderLayout());
TextArea aboutText = new TextArea(getAboutText(), 5, 10);
aboutText.setEditable(false);
aboutForm.addComponent(BorderLayout.CENTER, aboutText);
aboutForm.show();

当我运行它时,它会失败:

Form: showModal
java.lang.NullPointerException
  at com.sun.lwuit.TextArea.shouldShowHint(+21)
  at com.sun.lwuit.TextArea.calcPreferredSize(+4)
  at com.sun.lwuit.Component.preferredSize(+63)
  ...

3 个答案:

答案 0 :(得分:2)

您可以查看以下代码:

import com.sun.lwuit.Display;
import com.sun.lwuit.Form;
import com.sun.lwuit.TextArea;
import com.sun.lwuit.layouts.BorderLayout;
import javax.microedition.midlet.*;

public class TextMidlet extends MIDlet {

    private Form aboutForm;

    public TextMidlet() {
        Display.init(this);

        aboutForm = new Form();
        aboutForm.setScrollable(true);
        aboutForm.setLayout(new BorderLayout());
    }

    public void startApp() {

        TextArea aboutText = new TextArea("hiiiiiiiiiiiiii", 5, 10);
        aboutText.setEditable(false);
        aboutForm.addComponent(BorderLayout.CENTER, aboutText);
        aboutForm.show();
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}

答案 1 :(得分:0)

代码对我来说很好看。请检查getAboutText()是否返回String并且不返回null。

如果这没有帮助,您可以使用LWUIT-Sources来调试代码。在TextArea.shouldShowHint上设置一个断点,找出它是什么。

答案 2 :(得分:0)

检查

import com.sun.lwuit.TextArea;