WindowAdapterは、ウィンドウイベントを受け取るための抽象アダプタクラスです。
このクラス内のメソッドは空だと聞いたので当然abstractが使われていてると思ったので
newすると...
エラー: WIndowAdapterはabstractです。インスタンスを生成することはできません
というエラーが出ると予想していたのですがコンパイルが成功してしまいました????
そもそも、「抽象クラスは、newによるインスタンス化が禁止される」
という私の認識が間違えているのでしょうか?
そのへん込みで詳しくわかる方がいれば、解説御願いしますm(__)m
一応、サンプルとしてコードを下においておきます。
Java
1/* 2 * SmplWnd1.java 3 */ 4 5// WindowFoucusListener, WindowListener, WindowStateListener, EventListenerの4つのリスナーインターフェースを実装しているクラス 6// さまざまなイベントを受け取るものをJavaではリスナーという 7import java.awt.event.WindowAdapter; 8 9import java.awt.event.WindowEvent; 10 11import javax.swing.JFrame; 12public class SmplWnd1 extends JFrame { 13 14 SmplWnd1() { 15 /** 16 * -------------------------------------------------------------------------- 17 * 「ウィンドウが」閉じられようとしている」というイベント 18 * プログラムコードを明示的に受け取ってプログラムを終了するようにする方法 19 * -------------------------------------------------------------------------- 20 **/ 21 // リスナーインターフェースを追加 22 this.addWindowListener(new WindowAdapter() { 23 24 @Override 25 // windowClosingメソッドをオーバーライド 26 public void windowClosing(WindowEvent e) { 27 // 実行中のJVMを終了させる ← 処理の終了させる 28 System.exit(0); 29 } 30 31 }); 32 33 this.setSize(300,220); 34 this.setVisible(true); 35 } 36 37 public static void main(final String args[]) { 38 new SmplWnd1(); 39 } 40}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/10 18:12