컴퓨터프로그래밍/JAVA

Java_이벤트_adapter

zelkova 2016. 6. 1. 16:36

<목차로 돌아가기>


  이벤트_Adapter


Listener 인터페이스가 정의하고 있는 메소드들을 아무 기술없이 미리 구현한 일종의 추상 클래스이다. 


풀어서 말하면 implements 같은 경우는 사용하지 않는 아래와 같이 사용하지 않는 메소드도 정의해야 한다.



1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

 import java.awt.*;
 import java.awt.event.*; 
 public class TestExam extends Frame implements WindowListener
 {
    public TestExam()
    {
       this.addWindowListener(this);
    }
    public static void main(String[] args)
    {
       Frame f=new TestExam();
       f.setSize(200,200);
       f.setVisible(true);
    }
    public void windowOpened(WindowEvent e) {}
    public void windowClosing(WindowEvent e) //사실 이것만 필요
    {
       System.exit(1);
    }
    public void windowClosed(WindowEvent e) {}
    public void windowActivated(WindowEvent e) {}
    public void windowDeactivated(WindowEvent e) {}
    public void windowDeiconified(WindowEvent e) {}
    public void windowIconified(WindowEvent e) {}
 }


따라서 어답터를 활용해서 사용하지 않는 메소드를  간략하게 처리할 수 있다.

내부클래스 개념으로 구현이 되는데 

public TestExam()

{

   class Awindow extends WindowAdapter

   {

      public void WindowClosing(WindowEvent e)

      {

         System.exit(1);

      }

   }

   this.addWindowListener(new Awindow());

}


위와같이 하면 그래도 복잡한거같으니 아래와 같이줄일 수 있다.



1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

 import java.awt.*;
 import java.awt.event.*; 
 public class TestExam extends Frame implements WindowListener
 {
    public TestExam()
    {
       this.addWindowListener
       (
          new WindowAdapter() //내부클래스에 이름이 없는 구조
          {
             public void windowClosing(windowEvent e)
             {
                System.exit(1);
             }
          }
       );
    }
    public static void main(String[] args)
    {
       Frame f=new TestExam();
       f.setSize(200,200);
       f.setVisible(true);
    }
 }


반응형

'컴퓨터프로그래밍 > JAVA' 카테고리의 다른 글

Java-Swing의 이해  (4) 2016.06.10
Java-이미지 삽입하기  (0) 2016.06.09
JAVA-AWT이벤트처리  (0) 2016.05.24
AWT 컴포넌트 - 판넬(Panel) 및 레이아웃 배치방법  (0) 2016.05.21
AWT 컴포넌트의 활용  (0) 2016.05.20