1

LWUITDemo を実行したところ、いくつかの UI が正常に表示されませんでした。それらはすべて Form に含まれる TextArea です。TextArea を Label に変更すると、うまく機能します。

申し訳ありませんが、nokia 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)
  ...
4

3 に答える 3

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) {
    }
}
于 2012-11-16T04:51:52.020 に答える
0

コードは私には良さそうです。getAboutText()が文字列を返し、null を返さないことを確認してください。

これで問題が解決しない場合は、LWUIT-Sources を使用してコードをデバッグできます。TextArea.shouldShowHint にブレークポイントを設定し、何が null であるかを調べます。

于 2012-11-19T15:23:33.227 に答える
0

小切手

com.sun.lwuit.TextArea をインポートします。

于 2013-05-15T22:44:35.720 に答える