다음은 버튼 클릭 이벤트와 윈도우 종료 이벤트를 처리하기 위해 익명 클래스를 사용하는 예제 코드입니다.
package ex06.innerClass;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;
public class InnerEventMain02 {
class EventHandler implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
//System.out.println("ActionEvent 발생했습니다.");
//System.out.println(e.getActionCommand());
System.out.println(e.getSource());
}
}
public static void main(String[] args) {
Frame frame = new Frame("이벤트 처리 - 이너 클래스"); // 프레임(화면)
Button btn = new Button("Button - start");
// 2. 익명 클래스 사용
btn.addActionListener(new ActionListener() { // 익명 클래스
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand());
System.out.println(e.getSource());
}
});
// 3. 윈도우 종료 이벤트 처리
frame.addWindowListener(new WindowAdapter() { // 익명 클래스
@Override
public void windowClosing(WindowEvent e) {
System.exit(0); // X 를 누르면 닫기
}
});
frame.add(btn); // 프레임(윈도우)에 버튼 컴포넌트를 추가
frame.setVisible(true); // 프레임을 화면에 보이게 설정
frame.setSize(300, 200); // 프레임 크기 설정
frame.setLocation(300, 150); // 프레임 위치 설정
}
}
ActionListener 인터페이스를 구현하는 내부 클래스입니다. actionPerformed 메소드는 이벤트 소스를 출력합니다.버튼 클릭 이벤트 처리:
java코드 복사
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand());
System.out.println(e.getSource());
}
});
ActionListener를 익명 클래스로 구현하여 등록합니다. 버튼을 클릭하면 actionPerformed 메소드가 호출되어 클릭한 버튼의 정보가 출력됩니다.윈도우 종료 이벤트 처리:
java코드 복사
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0); // X를 누르면 프로그램 종료
}
});
WindowAdapter를 익명 클래스로 구현하여 등록합니다. 윈도우의 X 버튼을 클릭하면 windowClosing 메소드가 호출되어 프로그램이 종료됩니다.