반응형
- 이벤트 소스
이벤트가 발생할 수 있는 대상. 컴포넌트.
- 이벤트 리스너
이벤트 소스에서 이벤트가 발생하는지 검사하닥 이벤트가 발생되면 실제적으로 이벤트를 처리할 수 있는 인터페이스
- 이벤트 핸들러
이벤트 리스너에 전달된 이벤트를 실제로 처리할 수 있도록 이벤트 리스너에 포함되어 있는 메서드로 발생된 이벤트 객체를 받아 실제적인 처리를 해주는 기능을 가진다.
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Main extends Frame implements ActionListener {
Panel p;
Button input, exit;
TextArea ta;
public Main() { //생성자.
super("ActionEnvet Test");
p = new Panel();
input = new Button("input");
exit = new Button("exit");
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);
}
// JVM은 버튼이 눌렸을 때 이벤트 객체 생성하고 이를 처리하기 위해 핸들러 호출.
@Override
public void actionPerformed(ActionEvent e) { //이벤트 핸들러.
String name;
name = e.getActionCommand(); //컴포넌트 텍스트 값 구분.
if(name.equals("input")) {
ta.append("버튼이 입력되었습니다.\n");
}
else {
ta.append("프로그램을 종료합니다.\n");
//Thread.sleep() 메서드 사용 시 예외 처리 필요.
try {
Thread.sleep(1000); //스레드 1초 정지.
} catch(Exception e) { }
System.exit(0); //1초 후 종료.
}
}
public static void main(String[] args) {
new Main();
}
}
반응형
'JAVA > 공부' 카테고리의 다른 글
OSI 7계층 (0) | 2022.09.02 |
---|---|
자바 Adapter 클래스 (0) | 2022.09.01 |
스레드 (0) | 2022.07.11 |
예외 처리 (0) | 2022.07.11 |
이너 클래스와 이너 인터페이스 (0) | 2022.07.11 |