버튼을 클릭하는것(이벤트) 클릭하는 정보를 담는 것(객체) 이것들로 하여금 이벤트를 발생시키는 주체(소스)
이벤트 소스
: 이벤트가 실행되었을 때, 그 이벤트가 어떤 컴포넌트에서 발생했는지 말하는거

: 이벤트가 발생했을 때 그 이벤트를 처리하기 위한 메서드를 정의한 인터페이스
이벤트 소스가 이벤트 객체에 담기면 그에 맞는 리스너 인터페이스를 실행시키면 되는것
이벤트가 실행되면 그 이벤트를 이벤트객체가 받고, 이벤트리스너를 인터페이스로 구현시킨 클래스를 실행하는 것이고, 이벤트 소스는 그 이벤트가 실행되는 곳을 말해주는 것
이벤트 객체: 이벤트가 발생했을 때 생성되며 이벤트 정보가 담깁니다.
이벤트 리스너: 이벤트가 발생하면 이벤트 객체를 전달받아 이벤트를 처리합니다.
이벤트 소스: 이벤트를 발생시킨 주체(컴포넌트)이며 e.getSource()를 통해 가져옵니다.

package Swing;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
// 이벤트 리스너 클래스 작성
class MyActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) { // 버튼 클릭 시 호출되는 메서드
// e는 이벤트 객체
// 이벤트 소스 가져오기
JButton b = (JButton) e.getSource();
// 버튼의 현재 텍스트를 확인하고 변경
if (b.getText().equals("Action")) {
b.setText("액션"); // 버튼의 텍스트를 변경
} else {
b.setText("Action"); // 버튼의 텍스트를 다시 "Action"으로 변경
}
}
}
public class ActionListenerExample {
public static void main(String[] args) {
// JFrame 생성
JFrame frame = new JFrame("ActionListener 예제");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// JButton 생성
JButton button = new JButton("Action");
// 이벤트 리스너 객체 생성 및 등록
MyActionListener listener = new MyActionListener();
button.addActionListener(listener);
// 버튼을 프레임에 추가
frame.add(button);
frame.setVisible(true);
}
}
<코드 설명>
1. 버튼을 추가함
2. 버튼에 액션을 감지할 수 있는 기능을 넣음 (클래스)
3. 액션이 감지되면 클래스 실행
4. 클래스는 버튼이 눌린 컴포넌트를 가져옴
5. 그 컴포넌트가 Action이면 액션으로 변경