JAVA - Event 작성법
Event 작성 순서
1. Event를 작성하고자 하는 대상 객체와 Event클래스의 종류를 선정한다.
2. 대상 객체에게 해당 Event의 Handler를 추가한다.
3. 해당 Event 발생시 처리될 내용을 정의한 객체를 생성한다. -> 'Event 구현 객체'
1. Event를 작성하고자 하는 대상 객체와 Event클래스의 종류를 선정한다.
ex) 닫기 버튼을 눌렸을 때 프레임이 종료되기 원할때
- 대상 객체 : 닫기 버튼, Event 클래스 종류 : action(마우스를 통해서 버튼 클릭)
2. 대상 객체에게 해당 Event의 Handler를 추가한다.
- Event 추가
대상_객체.addEvent_종류Listener(Event_구현_객체);
ex) 닫기 버튼을 눌렸을 때 프레임이 종료되기 원할때
- bt.addActionListener(this);
3. 해당 Event 발생시 처리될 내용을 정의한 객체를 생성한다. -> 'Event 구현 객체' (start() 메소드가 구현 객체)
- 3가지 방법을 통해서 Event 구현 객체를 생성한다.
** Event 객체 정의 유형
1) Listener를 구현하거나 Adapter를 상속받은 임의의 클래스를 생성하는 방법
2) 현재 클래스에 Listener를 구현하는 방법
3) 익명 중첩 클래스를 사용하는 방법
3-1) Listener를 구현하거나 Adapter를 상속받은 임의의 클래스를 생성하는 방법
- Event 핸들러에 Listener와 Adapter가 있는지 먼저 확인을 한다.
(둘 다 있는 경우는 Adapter를 사용하고 Adapter가 없는 경우는 Listener를 사용한다. -> Listener의 경우 인터페이스이므로 모든 추상 메소드를 재정의 해야하기 때문이다.)
- 존재하는 클래스를 임의로 생성해 낸다.
ex) class ActionDefine implements ActionListener{
public void actionPerformed(ActionEvent e){
재정의.....
}
}
- Event 구현 객체위한 클래스
Event 구현 객체 - ActionDefine ad = new ActionDefine();
3-1 ) Listener나 Adapter를 상속받은 임의의 클래스를 생성하는 방법
3-2) 현재 클래스에 Listener를 구현하는 방법
- 현재 클래스(Round19_Ex01_Sub)에 Listener를 구현하는 방법이다.(이미 Frame을 상속 받기 때문에 인터페이스 구현 밖에 할 수 없다.)
- 단일 상속의 단점을 Listener를 통해서 해결 가능하다.
- implements를 통해서 Listener 구현을 하고 추상메소드를 재정의해주면 된다.
3-2 ) 현재 클래스에 Listener를 구현하는 방법
3-3) 익명 중첩 클래스를 사용하는 방법
- 클래스를 만들거나 현재 클래스에 구현할 필요없이 필요한 부분마다 빠르게 event를 취해줄 수 있는 방법
- 객체의 특징인 재사용이 불가능하지만 간단하고 빠르게 처리가능
ex) new ActionListener()도 Action타입의 객체이다.
*** ActionListener는 인터페이스이기 때문에 바로 객체의 발생이 불가능하고 객체를 발생시키려면 추상메소드의 재정의가 필요하다.
3-3 ) 익명 중첩 클래스를 사용하는 방법
*** start()메소드의 Event추가 부분에 익명 중첩 클래스를 사용하고 있다.
'JAVA' 카테고리의 다른 글
JAVA) swing border - EmptyBorder, EtchedBorder, LineBorder (0) | 2016.08.12 |
---|---|
자바 스윙(swing) 보더 - BevelBorder, SoftBevelBorder (0) | 2016.08.12 |
JAVA - 자바 Event 핸들러 (0) | 2016.08.01 |
JAVA - 프레임 제목넣기, 컴포넌트 출력하기 (0) | 2016.07.21 |
JAVA - AWT 프레임 (프레임(Frame) 생성하기) (0) | 2016.07.21 |