7

ボタンのactionListenerで、その場でフォームを作成したいと思います。

例:

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に動的フォームを実装する正しい方法、またはaction Listenerを介して事前定義されたフォームにジャンプする正しい方法を知っている人はいますか?

ありがとう

ジェームズ

4

2 に答える 2

4

back コマンドを作成し、フォームに関連付ける必要があります。

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);

これは、完全に手作業でコーディングされたキッチン シンクのデモで確認できます。

于 2012-09-04T05:06:48.557 に答える
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();
    }
});

シャイ、私が何か間違ったことをした場合は、これを修正してください。どうも。

于 2013-02-25T01:18:42.293 に答える