- PR -

無名内部クラスを使わない方法

1
投稿者投稿内容
しん
常連さん
会議室デビュー日: 2004/04/04
投稿数: 48
投稿日時: 2007-11-17 15:54
こんにちは
Swingを勉強し始めたのですがそこで無名内部クラスというのが
出てきました。下記のプログラムはウインドウを表示させるプログラムなのですが
コメント部分の無名内部クラスをその下のクラスのように書き換えて見ましたが
うまく動作しないようです(ウインドウ終了時にコンソールが終了しない)。
無名内部クラスを使用しない記述方法はどのように記述すればよいのでしょうか。


コード:

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;


public class Lesson26 {

public static void main(String[] args) {

JFrame myFrame = new JFrame("はじめてのSwing");


/* 無名内部クラスを用いるやり方*/
// myFrame.addWindowListener(new WindowAdapter() {
// public void windowClosing(WindowEvent e) {
// System.exit(0);
// }
// });


/* 無名内部クラスを用いないやり方*/
class aaa extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}

myFrame.setSize(300,200);
myFrame.setVisible(true);
}
}



[ メッセージ編集済み 編集者: けんた 編集日時 2007-11-17 15:54 ]
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-11-17 16:03
引用:

けんたさんの書き込み (2007-11-17 15:54) より:
/* 無名内部クラスを用いないやり方*/
class aaa extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}


myFrame.addWindowListener()の呼び出しは?
リスナーを登録しなきゃ通知してくれませんよ。
しん
常連さん
会議室デビュー日: 2004/04/04
投稿数: 48
投稿日時: 2007-11-17 16:19
お返事ありがとうございます。
すみません。
myFrame.addWindowListener()
をどう組み込めばよろしいのでしょうか。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-11-17 18:02
引用:

けんたさんの書き込み (2007-11-17 16:19) より:
myFrame.addWindowListener()
をどう組み込めばよろしいのでしょうか。



わからないって言うだけではなくて、
少しは自分で試したり考えたりしましょう。

myFrame.addWindowListener(new aaa());
kyo
会議室デビュー日: 2006/05/17
投稿数: 18
投稿日時: 2007-11-17 22:15
補足。

引用:

わからないって言うだけではなくて、
少しは自分で試したり考えたりしましょう。



試したり考えたりしたことがあったら書きましょう。
どこで躓いているか、回答者に伝わります。

顔をつき合わせて話している訳ではないので、たとえけんたさんがやっていたとしても、
書いてなければやってないのと同じです。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-11-19 15:52
無名クラスをローカルのインナークラスにしたのか…。
練習なのだとしたら、まずはトップレベルのクラスにするとか、
staticな内部クラスにしちゃうほうがわかりやすいかも。
1

スキルアップ/キャリアアップ(JOB@IT)