- ベストアンサー
ボタンとダイアログの関連性
- ボタンを押すとダイアログを表示させる方法について
- ダイアログ内でのボタンの操作方法について
- ダイアログの定義とフレーム内のボタンとの関係について
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> ダイアログの定義はActionListenerTest() 内にて行うのでしょうか? プログラムが読みにくくなるため、一般的にはここではダイアログの定義はしません。 ActionListenerTestクラス定義の外側で、ダイアログの定義するのが一般的だと思います。 > またダイアログ内でボタンを作り、そのボタンの操作を行うときは、 > フレームでのボタンと同様にString ac = evt.getActionCommand(); > ---でいいのでしょうか? そのような書き方でも大丈夫ですが、下記のTestDialogクラスとして 定義したような書き方もできます。 この方法では、イベントのソース(イベント発生源)が定義した ボタンと同じであることを見ています。 /* --- 以下プログラム --- */ import java.awt.*; import java.awt.event.*; public class ActionListenerTest extends Frame implements ActionListener { ActionListenerTest() { super("ActionListenerTest"); Button b1=new Button("BUTTON"); b1.addActionListener(this); add(b1); setSize(200,100); setVisible(true); } public void actionPerformed(ActionEvent evt) { String ac=evt.getActionCommand(); if(ac=="BUTTON") { /* ここでの操作でダイアログを表示させたい */ TestDialog dialog=new TestDialog(this); dialog.setVisible(true); } } public static void main(String[] args) { new ActionListenerTest(); } } /* --- 以下、テスト用ダイアログ --- */ class TestDialog extends Dialog implements ActionListener { private Button b2; TestDialog(Frame frame) { super(frame,true); b2=new Button("button"); b2.addActionListener(this); add(b2); setLocation(50,50); setSize(200,200); setTitle("Test Dialog"); } public void actionPerformed(ActionEvent evt) { if(evt.getSource()==b2) { /* b2ボタンを押したときの処理 */ setVisible(false); dispose(); } } }
お礼
正しく実行できました。 ありがとうございました