2009年5月3日日曜日

Java AWT ウインドウ(Frame)を閉じる

AWT ウインドウ(Frame)を閉じる

イベントリスナーWindowListenerを使用する方法


WindowListenerクラスはウインドウ関連のイベントを処理するためのイベントリスナーです。
WindowListenerをimplementsしたクラスは、WindowListenerがもつ7つのメソッドすべて実装する必要があります。
ウインドウを閉じるには7つのメソッドのうちwindowClosingメソッドのみを使用します。
package MyPackage1;

import java.awt.Frame;
import java.awt.event.*;

public class FrameCloseSample01 {
/*
* エントリポイント
*/
public static void  main(String args[]){
new FrameCloseSample01();
}

/*
* コンストラクタ
*/
public FrameCloseSample01(){
//フレームを作成します。
Frame frm = new Frame();
//フレームタイトルを指定します。
frm.setTitle("FrameCloseSample01");
//フレームサイズを指定します。
frm.setSize(300,300);
//イベントリスナーを追加します。
frm.addWindowListener(new frmWindowAdapter());
//フレームを表示します。
frm.setVisible(true);  
}

/*
* FrameのWindowListenerクラスです。
*/
private class frmWindowAdapter implements WindowListener{
@Override
public void windowActivated(WindowEvent arg0) {
// TODO 自動生成されたメソッド・スタブ
}

@Override
public void windowClosed(WindowEvent arg0) {
// TODO 自動生成されたメソッド・スタブ
}

@Override
public void windowClosing(WindowEvent arg0) {
// TODO 自動生成されたメソッド・スタブ
System.exit(0);
}

@Override
public void windowDeactivated(WindowEvent arg0) {
// TODO 自動生成されたメソッド・スタブ   
}

@Override
public void windowDeiconified(WindowEvent arg0) {
// TODO 自動生成されたメソッド・スタブ
}

@Override
public void windowIconified(WindowEvent arg0) {
// TODO 自動生成されたメソッド・スタブ
}

@Override
public void windowOpened(WindowEvent arg0) {
// TODO 自動生成されたメソッド・スタブ
}
}
}



無名クラスを使用して閉じる方法


package MyPackage1;

import java.awt.*;
import java.awt.event.*;

public class FrameCloseSample02 {

/*
* エントリポイント
*/
public static void main(String args[]){
new FrameCloseSample02();
}

/*
* コンストラクタ
*/
public FrameCloseSample02(){
//フレームを作成します。
Frame frm = new Frame();
//フレームタイトルを指定します。
frm.setTitle("FrameCloseSample02");
//フレームサイズを指定します。
frm.setSize(300,300);
//無名クラスを使用してFrameを閉じます。
frm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
//フレームを表示します。
frm.setVisible(true);  
}
}

WindowAdapterクラスはあらかじめWindowListenerをimplementsし、すべてのメソッドをオーバライド済みにしたクラスです。必要なメソッドのみオーバーライドして使用します。

0 件のコメント: