1

いくつかのボタンがあるダイアログを作成します。

そのボタンのいずれかのアクションで、ダイアログを終了したい。

コマンドを追加したくありません。

助けてください。

これが私のコードです。

Form form = (Form) createContainer("/theme", "MYDialog1"); Container container = (Container) findByName("Container", form); button = new Button(new Command("Close"),i)); try { button.setUIID("LabelButton"); } catch (Exception exception) { exception.printStackTrace(); } button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { ?????? } }); container.addComponent(button); Dialog.show("", form, null);

4

2 に答える 2

4

ダイアログにコマンドを追加すると、デフォルトでダイアログが破棄されます。

手動で呼び出しdialog.dispose()てダイアログを閉じ、現在のダイアログを取得するには、Dialog dlg = (Dialog)Display.getInstance().getCurrent();

于 2013-03-15T13:12:44.693 に答える
0

ダイアログとコンテナの間に何の関係もありません。このため、ダイアログを破棄できません。

あなたの質問から私が理解しているのは、ボタンにGUIが必要なため、コマンドを使用しないということです。

私のアドバイスは、そのようなダイアログを作成することです(私はそれがうまくいくと思います):

Dialog dialog = new Dialog();
    Display.getInstance().callSerially(new Runnable() {
        public void run() {
            dialog.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
            ...
            dialog.addComponent(dialog);

            button = new Button(new Command("Close"),i));
             try 
             { 
               button.setUIID("LabelButton"); 
              }
            catch (Exception exception) 
             {
            exception.printStackTrace(); 
             }
             button.addActionListener(new ActionListener() 
              { 
                  public void actionPerformed(ActionEvent evt) 
                    {
                        dialog.dispose();//???????????
                    }

            dialog.addCommand(okCommand);
            ...
            dialog.show();
        }
    });

このダイアログは、ボタンによって認識されるクラス メンバーである必要があります。

于 2013-03-12T15:10:08.990 に答える