
이 글에서는 자바(Java)에서 이벤트 기반 프로그래밍(Event-Driven Programming)의 핵심 개념과 이를 활용한 다양한 예제를 다룹니다. GUI 프로그램 개발에서 필수적인 이벤트 처리 방식을 이해하고 실습을 통해 구체적인 구현 방법을 배워보세요.
1. 이벤트 기반 프로그래밍이란?
이벤트 기반 프로그래밍은 프로그램의 흐름이 사용자 입력(마우스 클릭, 키보드 입력 등)이나 외부 요인에 의해 결정되는 방식입니다.
이 방식의 특징은 다음과 같습니다:
- 비동기적 실행: 이벤트 발생 시 특정 코드(리스너)가 실행되며, 발생하지 않으면 대기 상태를 유지합니다.
- 프로그램 흐름: 개발자가 아닌 이벤트의 발생 순서에 따라 결정됩니다.
실생활 예:
사용자가 버튼을 클릭했을 때 특정 동작이 수행되도록 설계하는 것이 대표적입니다.
2. 자바의 이벤트 처리 구조
자바에서 이벤트 처리는 이벤트 소스, 이벤트 객체, 이벤트 리스너라는 주요 요소로 구성됩니다.
- 이벤트 소스: 이벤트를 발생시키는 컴포넌트(예: 버튼, 텍스트 필드).
- 이벤트 객체: 이벤트에 대한 정보를 포함하는 객체로, 리스너로 전달됩니다.
- 이벤트 리스너: 발생한 이벤트를 처리하기 위해 작성된 코드.
3. 이벤트 리스너 작성 방법
자바에서는 이벤트 리스너를 작성하는 다양한 방법을 제공합니다.
1) 독립 클래스
별도의 클래스를 생성하여 리스너를 작성합니다.
class MyActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("Button clicked!");
}
}
2) 내부 클래스
특정 클래스 안에서 리스너를 정의하여 캡슐화를 강화합니다.
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Internal class example");
}
});
3) 익명 클래스
한 번만 사용할 간단한 리스너 코드에 적합합니다.
btn.addActionListener(e -> System.out.println("Anonymous class example"));
4. 주요 예제와 활용
자바 이벤트 기반 프로그래밍의 구체적인 예제를 통해 실습해봅니다.
예제 1: 버튼 클릭 이벤트
사용자가 버튼을 클릭하면 텍스트가 변경되도록 구현합니다.
JButton btn = new JButton("Click Me");
btn.addActionListener(e -> btn.setText("Clicked!"));
예제 2: 키보드 입력 이벤트
키보드를 누를 때마다 입력한 키의 정보를 표시합니다.
addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
System.out.println("Pressed: " + e.getKeyChar());
}
});
예제 3: 마우스 클릭 이벤트
마우스 클릭 위치에 따라 화면의 텍스트 위치를 변경합니다.
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
label.setLocation(e.getX(), e.getY());
}
});
5. 어댑터 클래스 활용
모든 메서드를 구현해야 하는 부담을 줄이기 위해 자바는 어댑터 클래스를 제공합니다.
예를 들어, MouseAdapter를 상속받아 필요한 메서드만 오버라이드할 수 있습니다.
class MyMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
System.out.println("Mouse pressed at " + e.getPoint());
}
}
6. 실습 문제
다양한 실습 문제를 통해 배운 내용을 확인해보세요.
- 문제 1: 버튼 클릭 시 색상이 변경되도록 구현하세요.
- 문제 2: 키보드 화살표 키로 텍스트를 이동시키는 프로그램을 작성하세요.
- 문제 3: 마우스 휠 이벤트를 처리하여 화면 스크롤을 구현하세요.
결론
이벤트 기반 프로그래밍은 자바 GUI 개발의 핵심 기술로, 사용자와의 상호작용을 자연스럽게 처리할 수 있도록 돕습니다. 본 글에서 소개한 개념과 예제를 통해, 이벤트 기반 프로그래밍에 대한 이해를 높이고 실무에서도 활용해보세요.
추가 질문이나 개선 사항이 있다면 댓글로 남겨주세요!