如何拨打另一张表格?当我使用form.show()
方法时,不会显示其他表单的组件
示例......
FirstForm.java
public class FirstForm extends MIDlet implements ActionListener
{
Form frm_first = new Form("First");
public Command cmd_Login;
public void startApp()
{
Display.init(this);
cmd_Login = new Command("Login");
frm_first.addComponent(cmd_login);
......
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void actionPerformed(ActionEvent ae)
{
Command cmd = ae.getCommand();
String strcmdName = cmd.getCommandName();
if (strcmdName.equals("Login"))
{
//how to call Login Form
}
}
}
Login.java
public class Login extends Form implements ActionListener
{
Form frm_Login = new Form("Login");
Button btn_Login = new Button("Login");
public Login()
{
....
. ....
}
}
答案 0 :(得分:2)
首先,您必须在类FirstForm中创建Form。
像Form frm=new Form("First Form");
一样
然后以frm.addCommand(cmd_Login);
之类的形式添加命令cmd_Login
然后将命令Listener设置为frm.setCommandListener(this);
&安培;需要在FirstForm而不是ActionListener中implements CommandListener
。
然后在public void commandAction(Command c, Displayable d) {
现在你必须编写代码去第二个Form。
&安培;我在你的登录课中注意到的一件事,你总是扩展课程形式&还在Login类中创建Form对象...如果您正在使用扩展类Form,则不要创建Form对象。
感谢
答案 1 :(得分:1)
只需使用
new Login().show();
答案 2 :(得分:0)
在实现监听器之后,我发现从另一个窗体中调用表单的最佳方法是使用它:showForm("name of Form", null);
调用另一个表单的另一种方法是,但是在组件操作中:showContainer("name of Form",c, null);
答案 3 :(得分:0)
在Display.init(this)之前调用此行;因此,你得到一个例外,没有任何作用。
Form frm_first = new Form("First");
在Display.init(this)
代码之后移动初始化代码。