Javaを勉強しています。

一通り参考書を終えてAWTのプログラミングの勉強に移りましたが
AWTのサンプルプログラムが全然理解できませんでした。
ドキュメントが難しくて理解できません・・

ウィンドウを表示させるサンプルの一部で
ダイアログの×ボタンが押されたらプログラムを終了させる処理する部分なんですが・・・

addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}});

この部分はダイアログの×印クリックすると、どのような順番でどのようなデータがどのメソッドに渡されて終了処理を行うのでしょうか?
説明がへたくそで伝わってなかったらすいません。

よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/05/25 21:19:13
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:haruo-31 No.1

回答回数80ベストアンサー獲得回数10

ポイント50pt

分けて書いてみました。

class MyWindowAdapter extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
        System.exit(0);
    }
}

class MyMainClass {
    ....
    win.addWindowListener(new MyWindowAdapter());

閉じるイベントが発生すると、winが持っているWindowAdapterのインスタンスのwindowClosingを呼び出します。

windowClosingイベントはSystem.exit(0)を実行するので、終了するというわけです。

http://wisdom.sakura.ne.jp/system/java/awt/Gjava29.html

id:Hate_sakura3

haruo-31様

回答ありがとうございます。

閉じるイベントの発生からの流れを端的に記述していただき

大変わかりやすかったです。

また、参照URLのページも詳しく

AWTのことが書かれていて大変勉強になりました。

まだ理解できていない部分もありますが

大体のプログラムの流れがわかりました

本当にありがとうございました

2009/05/25 21:16:47

その他の回答1件)

id:haruo-31 No.1

回答回数80ベストアンサー獲得回数10ここでベストアンサー

ポイント50pt

分けて書いてみました。

class MyWindowAdapter extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
        System.exit(0);
    }
}

class MyMainClass {
    ....
    win.addWindowListener(new MyWindowAdapter());

閉じるイベントが発生すると、winが持っているWindowAdapterのインスタンスのwindowClosingを呼び出します。

windowClosingイベントはSystem.exit(0)を実行するので、終了するというわけです。

http://wisdom.sakura.ne.jp/system/java/awt/Gjava29.html

id:Hate_sakura3

haruo-31様

回答ありがとうございます。

閉じるイベントの発生からの流れを端的に記述していただき

大変わかりやすかったです。

また、参照URLのページも詳しく

AWTのことが書かれていて大変勉強になりました。

まだ理解できていない部分もありますが

大体のプログラムの流れがわかりました

本当にありがとうございました

2009/05/25 21:16:47
id:tap_t No.2

回答回数45ベストアンサー獲得回数6

ポイント50pt

コメントが付けられないのでこちらに書きます・・・なので、ポイントは無くても良いです(^^;

>AWTのサンプルプログラムが全然理解できませんでした。

>ドキュメントが難しくて理解できません・・

>

ならば、とりあえず、結果オーライで進めた方が良いかと。

で、この質問の内容が、理解できないと、自分のやりたいことが出来ないのならば、やりたいことを実現する方法を質問した方が、良いかなぁと思います。

で、windowClosing() は、Window が閉じるときのイベントで呼び出されるようですね。

順番は、あまり意識したこと無いなぁ。

たぶん、

1. windowマネージャ

2. イベントで、対応したメソッド(windowClosing()とか)が呼び出される ( 中身は、自分で書く )

この時、イベントのオブジェクトが渡される。

3. この例の場合、System.exit(0) が呼び出される。-> プログラム終了

参照としては、

http://www.j2ee.me/javase/ja/6/docs/ja/api/java/awt/event/Window...

http://www.tohoho-web.com/java/listener.htm

http://www.javadrive.jp/tutorial/event/index4.html

どれも、似たようなページですね。

しかも、これだと、動作の理論的なことは書いてませんね。すみません。

id:Hate_sakura3

tap_t様

回答ありがとうございます。

あまり理解できていませんが、

tap_t様の言われるとおり「結果オーライ」で、読み進めていくことにいたします。

WindowAdapterクラスがイベントを受け取って対応したメソッドが呼び出される。

ダイアログの×を押したとき

対応したwindowClosing()が実行され

そのメソッド中のSystem.exit(0)が実行されプログラム終了される

ということが理解できました。

参照ページも大変勉強になりそうです

これからじっくり読ませていただきます

ありがとうございました。

2009/05/25 21:05:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません