显示警报,然后跳转到j2me中的另一个表单

时间:2011-10-05 14:17:02

标签: java java-me midp lcdui

我正在研究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。那么,我怎样才能显示警报然后跳转到另一种形式。

3 个答案:

答案 0 :(得分:1)

警报不会自动推进到chapterForm,因为您已使用this替换了警报上的默认侦听器。使用CommandListener接口中的commandAction()事件从警报中获取“确定”或“取消”。然后,您可以使用Display.setCurrent(Displayable d)来显示要显示的表单。

答案 1 :(得分:1)

Display.getDisplay(parent).setCurrent(welcomeForm)很可能是不显示警报但跳转到welComeForm 的原因。准确地说,它(设备)可能会暂时显示警报,但只要您调用setCurrent(welcomeForm),它就会被welcomeForm暂时覆盖。

如果您希望welcomeForm被来自警报的命令显示,只需

  1. 从现在的位置

  2. 中删除代码setCurrent(welcomeForm)
  3. 将已删除的代码插入this.commandAction方法(this是您在代码exerpt中使用的命令侦听器)

答案 2 :(得分:0)

一个漂亮的解决方案是在将当前显示设置为Alert后启动一个新线程,在这个新线程中你可以执行Thread.sleep(2000);为了等待,之后你会显示新表格。