package com.event;//이벤트 처리 (소스, 핸들러 ,리스너)
import java.awt.Panel;
import java.awt.Button;
import java.awt.TextArea;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.BorderLayout;
public class ActionEventEx extends Frame implements ActionListener{
//이벤트 리스너
/*이벤트 처리순서
1. 이벤트 소스와 이벤트 리스너가 구현된 객체를 연결
2. 이벤트 핸들러를 구현
3.이벤트가 발생하면 연결되어 있는 이벤트 핸들러가 호출
JVM은 이벤트 객체를 생성해서 이벤트 핸들러에 전달됨*/
Panel p;
Button input,exit;
TextArea ta;
public ActionEventEx(){
super("ActionEvent Test");
p=new Panel();
//이벤트 소스
input=new Button("입력");
exit=new Button("종료");
ta = new TextArea();
//이벤트 소스와 이벤트 리스너가 구현된 이벤트 처리 객체와 연결
input.addActionListener(this);
exit.addActionListener(this);
p.add(input);
p.add(exit);
add(p, BorderLayout.NORTH);
add(ta, BorderLayout.CENTER);
setBounds(300,300, 300,200);
setVisible(true);
}
//이벤트 핸들러
//이벤트 소스와 이벤트 리스너가 구현된 객체 연결했기 때문에
//이벤트가 발생하면 자동적으로 이벤트 핸들러 호출됨
public void actionPerformed(ActionEvent ae){
//이벤트 객체
//JVM이 이벤트가 발생하면 이벤트 종류분석해서
//해당 이벤트 정보를 담을 수 있는 객체 생성
String name;
name=ae.getActionCommand();
if(name.equals("입력"))
ta.append("버튼이 입력되었습니다.\n");
else
System.exit(0); //프로그램 정상 종료
}
public static void main(String[] args) {
new ActionEventEx();
}
}