Event-driven programming
• 버튼 클릭과 같은 특정 이벤트가 발생하면 적절한 처리를 해주는 프로그래밍 방식
이벤트 처리 절차
감시중 > 버튼 클릭 > 이벤트 발생 > 코드 실행 |
이벤트 리스너 (Event listener)
• 이벤트가 발생하면 이벤트 객체가 생성
• 이벤트 리스너 : 발생된 이벤트 객체에 반응 해 이벤트를 처리하는 객체
• 이벤트 소스에 리스너를 등록하면 이벤트가 발생 했을 때, 이벤트 리스너 내부의 처리 메소드가 호출 된다.
이벤트 리스너 작성
1. 이벤트 리스너 클래스 작성
• 리스너 작성 --> interface로 제공 된다.
• 이벤트 리스너를 작성하기 위해선, 해당 인터페이스 내부의 추상 메소드를 구현해야 한다.
• 이벤트의 종류에 따라 다양한 리스너 인터페이스를 제공하기 때문에 이벤트에 맞는 인터페이스를 구현해야 한다.
interface ActionListener{
public void actionPerformed(ActionEvent e);
}
2. 이벤트 리스너를 컴포넌트에 등록
• 각 컴포넌트는 이벤트 리스너를 등록할 수 있는 메소드를 제공한다.
1. 리스너를 독립적인 클래스로 작성
• 리스너를 등록하는 가장 기본적인 방법
Line8 e.getSource(); -> 이벤트 발생 시 해당되는 컴포넌트의 변수를 불러온다.
2. 리스너 클래스를 내부 클래스로 작성
• 내부 클래스는 외부 클래스의 멤버 변수들을 자유롭게 사용 가능하다.
Line 6,7 -> 생성자와 actionPerformed() 메소드(Line25)에서 사용하기 때문에 멤버 변수로 설정
Line 22 -> MyListener 클래스는 MyFrame의 JAVA1의 내부 클래스로 설정하여 JAVA1의 멤버 변수에 접근할 수
있도록 만든다.
컴포넌트의 문자열 처리 방법
컴포넌트.getText(); // 컴포넌트에 입력되어 있는 문자열 가져오기
컴포넌트.setText(); // 컴포넌트에 문자열 출력하기
3. 클래스가 JFrame을 상속 받으면서 동시에 리스너 인터페이스를 구현
• 하나의 클래스 안에서 모든 작업이 가능
스윙 컴포넌트 이벤트
• 스윙 컴포넌트가 발생하는 이벤트는 모든 컴포넌트가 공통적으로 지원하는 저수준 이벤트와
일부 컴포넌트만 지원하는 의미적 이벤트로 나뉜다.
저수준 이벤트 (low-level event)
이벤트 종류 | 발생 상황 |
Component | 컴포넌트의 크기나 위치가 변경되었을 경우 |
Focus | 키보드 입력을 받을 수 있는 상태가 되었을 때나 반대의 상황의 경우 |
Container | 컴포넌트가 컨테이너에 추가되거나 삭제될 경우 |
Key | 사용자가 키를 눌렀을 때 키보드 포커스를 가지고 있는 객체에서 발생 |
Mouse | 마우스 버튼이 클릭 되었을 때, 혹은 마우스가 객체의 영역으로 들어오거나 나갈 경우 |
MouseMotion | 마우스가 움직였을 경우 |
Window | 윈도우에 어떤 변화가 있을 경우 (닫힘, 열림, 아이콘화 등) |
액션 이벤트 (Action Event) - 배경색 변경
• 사용자가 버튼을 클릭하는 경우
• 사용자가 메뉴 항목을 선택하는 경우
• 사용자가 텍스트 필드에서 엔터키를 누르는 경우
Line 27 ~ 31 의 if문을 통해서 노란색을 클릭하면 yellow color가 뜨고,
핑크색을 클릭하면 pink color 가 뜬다..
'Backend > JAVA' 카테고리의 다른 글
[JAVA] LinkedList (0) | 2022.03.07 |
---|---|
[JAVA] ArrayList (0) | 2022.03.04 |
[JAVA] Generic (0) | 2022.03.04 |
[JAVA] 배치 관리자(Layout manager) (0) | 2022.03.02 |
[JAVA] Java Swing (0) | 2022.03.02 |