Java 黑莓应用程序中的菜单项
我在应用程序中使用了一些菜单项,我对覆盖的run方法有一个问题Java 黑莓应用程序中的菜单项,java,blackberry,user-interface,thread-safety,Java,Blackberry,User Interface,Thread Safety,我在应用程序中使用了一些菜单项,我对覆盖的run方法有一个问题 private MenuItem menuItemUpdate = new MenuItem("Update", 0, 0) { public void run() { // Can I write GUI code here? } }; 如注释所述,我可以在这里编写GUI代码吗?我不能,对吗?因为我不在GUI线程上?当我有更改GUI的代码时,是否应该使用invokeLater方法?那么对话框呢,
private MenuItem menuItemUpdate = new MenuItem("Update", 0, 0) {
public void run() {
// Can I write GUI code here?
}
};
如注释所述,我可以在这里编写GUI代码吗?我不能,对吗?因为我不在GUI线程上?当我有更改GUI的代码时,是否应该使用invokeLater方法?那么对话框呢,它们是否也应该在invokeLater方法中调用呢
如果我创建了另一个线程,当用户选择菜单项时将调用该线程,那么是否有必要重写MenuItem的run方法?我可以在构造函数中启动该线程吗?并保持run方法未被重写?您可以在那里编写UI代码,因为UI线程处理用户的操作,并调用菜单项代码。所有用户交互都由UI线程处理。您可以在那里编写UI代码,因为UI线程处理用户的操作,并调用菜单项代码。所有用户交互都由UI线程处理。是的,您可以-因为它在UI线程上,例如:
private MenuItem menuItemUpdate = new MenuItem("Update", 0, 0) {
public void run() {
Show.status("Huzzah!");
}
};
这似乎是一条普遍的规则,即在获得非法状态异常之前,不要在周围添加任何锁定;-) 是的,您可以-因为它位于UI线程上,例如:
private MenuItem menuItemUpdate = new MenuItem("Update", 0, 0) {
public void run() {
Show.status("Huzzah!");
}
};
这似乎是一条普遍的规则,即在获得非法状态异常之前,不要在周围添加任何锁定;-) 您还可以使用run方法来设计
Ui或Gui
的pushScreen()
页面。您还可以使用run方法来设计Ui或Gui
的pushScreen()
页面。。。