黑莓应用程序中的MenuItem



我在应用程序中使用了一些菜单项,并且我对覆盖的run方法有疑问。

private MenuItem menuItemUpdate = new MenuItem("Update", 0, 0) {
    public void run() {
        // Can I write GUI code here?
    }
};

正如注释所说,我可以在这里编写GUI代码吗?我不能,对吧?既然我不在GUI线程上?当我有更改GUI的代码时,我应该使用invokeLater方法吗?那么Dialogs呢?是否也应该在invokeLater方法中调用它们?

如果我制作了另一个线程,当用户选择菜单项时,该线程将被调用,那么是否有必要覆盖MenuItem的run方法?我可以在构造函数中启动那个线程吗?并保持run方法未被覆盖?

您可以在那里编写UI代码,因为UI线程处理用户的操作,并调用菜单项代码。所有用户交互都由UI线程处理。

是的,你可以-因为它在UI线程上,例如:

private MenuItem menuItemUpdate = new MenuItem("Update", 0, 0) {
    public void run() {
        Show.status("Huzzah!");
    }
};

这似乎是一个普遍的规则,你不添加任何锁定-直到你得到一个IllegalStateException;-)

相关内容

  • 没有找到相关文章

最新更新