- ベストアンサー
アクティブウィンドウと非アクティブウィンドウを作るには??
メインとなる画面にボタンを作り、ボタンを押すと別のウィンドウが開くようなプログラムを作成したいのですがどうしたらいいのでしょうか? 新しい画面が開かれているときは、メインの画面をクリックしてもそちらは操作出来ないようにしたいのです。 何を使ったらいいかなど詳しく教えてください。 宜しくお願いします!!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 >ボタンを押すと別のウィンドウが開く ●「ボタンを押した」というイベントを拾う方法 1.ボタンの設定(最初の画面にボタンを貼り付けるタイミングでいいでしょう) ・アクションリスナーをボタンに登録 btn.addActionListener( ..... ); ・機能名を登録(任意です。定数として定義しておくといいでしょう) btn.setActionCommand("OpenWindow"); 2.「ボタンが押された」というイベントを受ける ・イベントを受けるクラスに、ActionListenerをインプリメントする。 ・public void actionPerformed(ActionEvent ae) を追加する。 *JAVAでイベントを拾うには、対象のオブジェクトにイベントリスナーを登録する方法 をとります(キーイベント、マウスイベント他)。 覚えてしまいましょう。 <例> public class TestClass extends JFrame implements ActionListener { public static final String CMD_OPEN_WINDOW = "OpenWindow"; private JButton btn = new JButton("click!!"); /** コンストラクタ */ public TestClass(){ btn.addActionListener(this); btn.setActionCommand(CMD_OPEN_WINDOW); getContentPane().add(btn); } /**アクションリスナー */ public void actionPerformed(ActionEvent ae){ Strign cmd = ae.getActionCommand(); if(cmd.equals(CMD_OPEN_WINDOW){ //ここにボタンが押された時の処理を記述します } } ●別のウインドウを開く JDialogをモーダルで作ればいいと思います。 ・コンストラクタに親Frameを渡して、オブジェクトを生成 ・画面を整える(やり方はJFrameと同じです) ・表示する(これもJFrameと同じでshow()メソッドを使います)
その他の回答 (1)
- ngsvx
- ベストアンサー率49% (157/315)
補足要求です。 1.まず、AWTなのか、SWINGなのかを明確にして下さい。 2.どこがわからないのか、もっと明確にして下さい。 ・メインとなる画面に ・ボタンを作り、 ・ボタンを押すと ・別のウィンドウが開く あなたの質問には、この4つの処理が含まれています。 どこがわからないのでしょうか?
補足
すみません、言葉が足りなかったですね。 まず、SWINGで作ろうと思っています。 後、わからないのは2で言うと、「ボタンを押すと別のウィンドウが開く」のところです。 宜しくお願いします。