好吧,我正在我的手机中开发一个应用程序,它将连接到我的电脑,问题是我每次将URLRequest返回给手机时,它会在屏幕上显示上一个表格而不是实际的表格,例如,这就是我的actionListener:
public void actionPerformed(ActionEvent ae) {
if (ae.getCommand() == guiaUtil.cSelecionar()) {
LoginRemote loginRemote = new LoginRemote();
try {
//This is the request, returns true or false, does not affect the form
loginRemote.login(tLogin.getText(), tPassword.getText());
} catch (Exception e) {
GuiaUtil.error(e);
return;
}
guiaUtil.mainApp().startMenu();
}
}
然后在“guiaUtil.mainApp()。startMenu()”中我有这个
public void startMenu() {
if (itemsMenu == null) {
itemsMenu = new List();
itemsMenu.setWidth(320);
itemsMenu.addItem("Sincronize Spots");
itemsMenu.addItem("Find Spots");
itemsMenu.addItem("Work");
itemsMenu.setFocus(true);
this.addComponent(itemsMenu);
this.addCommandListener(this);
this.addCommand(guiaUtil.cSelect());
Form form = new Form();
form.addComponent(itemsMenu);
}
form.show();
}
无论如何,在请求返回后,它再次显示我的登录表单,而不是显示菜单列表
答案 0 :(得分:1)
可能会发生什么事情,你得到一个例外,用GuiaUtil.error
处理它并从actionPerformed
返回而不调用startMenu
。
我会在try / catch块中移动guiaUtil.mainApp().startMenu()
。
答案 1 :(得分:0)
不确定loginRemote.login(tLogin.getText(), tPassword.getText());
中发生的情况如果您访问网络,我会将该部分放在另一个线程中。
当“远程登录”完成时,通过某种回调通知主线程,
你可以从edt那里显示menuForm。
答案 2 :(得分:0)
您必须将以下代码放在if条件之外。
Form form = new Form();
form.addComponent(itemsMenu);
你有两个表单对象。一个在if里面,另一个在if之外。在循环内创建的对象将丢失内部的范围if。您正在外面显示表单对象if。这就是为什么没有显示菜单列表屏幕的原因。