LWUIT TextArea NullPointerException



我运行LWUITDemo,某些UI无法显示成功。所有这些都是Form包含的文本区域,如果我将TextArea更改为Label,它工作得很好。

抱歉,我在诺基亚 s40 sdk 2.0 中运行它。当我运行大多数包含文本区域的代码时,发生了异常;

这样的代码(来自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)
  ...

你可以检查下面的代码:

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) {
    }
}

代码对我来说看起来不错。请检查getAboutText()是否返回字符串并且不返回 null。

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

检查

import com.sun.lwuit.TextArea;

相关内容

最新更新