在一个按钮的actionListener中,我们想要动态创建一个Form。
例如
之类的东西Button b = new Button("Clickme");
b.setActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Form f = new Form();
Container c = new Container();
...
f.addComponent(c);
f.show();
}
});
哪种方法很好.....但“后退”按钮不起作用
有没有人知道在actionListener中实现动态表单的正确方法,或通过动作侦听器跳转到预定义的表单?
由于
詹姆斯
答案 0 :(得分:4)
您需要创建一个后退命令并将其与表单相关联:
Command back = new Command("Back") {
public void actionPerformed(ActionEvent ev) {
// notice that when showing a previous form it is best to use showBack() so the
// transition runs in reverse
showPreviousForm();
}
};
f.setBackCommand(back);
您可以在厨房水槽演示中看到这一点,该演示完全是手工编码。
答案 1 :(得分:0)
您也可以将表单作为参数提供
chooseDB(c.getComponentForm());
private void chooseDB(final Form main) {
Form f = new Form("Choose a Database");
...
Command backCommand = new Command("Back") {
public void actionPerformed(ActionEvent ev) {
main.showBack();
}};
f.addCommand(backCommand);
f.setBackCommand(backCommand);
f.show();
}
所以对你的例子来说:
Button b = new Button("Clickme");
b.setActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Form f = new Form();
Container c = new Container();
Command backCommand = new Command("Settings") {
public void actionPerformed(ActionEvent ev) {
b.getComponentForm().showBack();
}};
f.addCommand(backCommand);
f.setBackCommand(backCommand);
f.addComponent(c);
f.show();
}
});
Shai,如果我做错了,请更正。 THX。