package CHAPTER11;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

// 프레임 클래스가 이벤트를 처리하는 방법
// JFrame 클래스 자체가 이벤트 리스너를 구현하여 이벤트를 처리합니다.
public class C11_06_FrameClassEvent extends JFrame implements ActionListener {
	private JLabel label; // 레이블 필드(전역선언)
	private int counter; // 카운터 필드(전역선언)

	public C11_06_FrameClassEvent() {
		setTitle("숫자 카운트 프로그램");
		setSize(300, 200);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(null);

		label = new JLabel("Count: 0");
		label.setBounds(110, 50, 100, 30);
		add(label);

		JButton button = new JButton("Click Me");
		button.setBounds(100, 100, 100, 30);
		add(button);

		// 프레임 클래스(this)를 리스너로 등록
		button.addActionListener(this);

		// 카운터 초기화
		counter = 0;
		setVisible(true);
	}

	// ActionListener 인터페이스의 actionPerformed 메서드 구현
	@Override
	public void actionPerformed(ActionEvent e) {
		counter = (counter % 100) + 1; 
		label.setText("Count: " + counter);
	}

	public static void main(String[] args) {
		FrameClassEvent fe = new FrameClassEvent();

	}
}
