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

警报不会自动前进,chapterForm因为您已将警报上的默认侦听器替换为this. 使用 CommandListener 接口中的 commandAction() 事件从 Alert 中获取 OK 或 Cancel。然后您可以使用Display.setCurrent(Displayable d)来显示您要显示的表格。

于 2011-10-05T14:42:14.687 回答
1

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

如果您想welcomeForm通过警报命令显示,只需

  1. setCurrent(welcomeForm)从现在的位置清除代码

  2. 将删除的代码插入this.commandAction方法中(this是您在代码摘录中使用的命令侦听器)

于 2011-10-05T15:00:05.697 回答
0

一个不错的解决方案是在将当前显示设置为警报后启动一个新线程,在这个新线程中您可以执行 Thread.sleep(2000); 为了等待,然后显示新表单。

于 2013-07-21T21:04:54.727 回答