2

J2MEアプリケーションに取り組んでいます。フォームにアラートを表示し、別のクラスの別のフォームを表示したい。アラートを表示するために次の方法を試しました。

public void showMsg() 
    {
        Alert success = new Alert("Data Not found.");
        //success.setImage(img2);
       success.addCommand(new Command("Ok", Command.OK, 0));
       success.addCommand(new Command("Cancel", Command.CANCEL, 0));
       success.setCommandListener(this);
       success.setTimeout(Alert.FOREVER);

        Display.getDisplay(parent).setCurrent(success, chapterForm);
    } 

アラートを表示した後、次のように別のフォームにジャンプしています。

Display.getDisplay(parent).setCurrent(welcomeForm);

これを実行すると、アラートは表示されませんが、welComeFormにジャンプします。では、どうすればアラートを表示してから別のフォームにジャンプできますか。

4

3 に答える 3

1

Display.getDisplay(parent).setCurrent(welcomeForm)おそらく、アラートを表示せずに welComeForm にジャンプする理由です。正確に言うと、(デバイスは) 一瞬アラートを表示することがありますが、それを呼び出すとすぐに、setCurrent(welcomeForm)welcomeForm によって一時的に上書きされます。

welcomeFormアラートからコマンドで表示させたい場合はそのまま

  1. setCurrent(welcomeForm)コードを現在の場所から一掃する

  2. その一掃されたコードをthis.commandActionメソッドに挿入しthisます(コードの抜粋で使用するコマンドリスナーです)

于 2011-10-05T15:00:05.697 に答える
1

chapterFormAlertのデフォルト リスナーを に置き換えたため、Alert は自動的に に進みませんthis。CommandListener インターフェイスで commandAction() イベントを使用して、Alert から OK または Cancel を取得します。次にDisplay.setCurrent(Displayable d)、表示したいフォームを表示するために使用できます。

于 2011-10-05T14:42:14.687 に答える
0

気の利いた解決策は、現在の表示をアラートに設定した後に新しいスレッドを開始することです。この新しいスレッドでは、Thread.sleep(2000); を実行できます。待ってから、新しいフォームを表示します。

于 2013-07-21T21:04:54.727 に答える