package ch05;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
class MyFrame1 extends JFrame implements ActionListener{
JButton button;
public MyFrame1() {
initData();
setInitLayout();
addEventListener();
}
private void initData() {
setTitle("이벤트 리스너 연습");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,500);
button = new JButton("button1");
}
private void setInitLayout() {
setVisible(true);
setLayout(new FlowLayout());
add(button);
}
private void addEventListener() {
button.addActionListener(this);//등록해서 actionPerformed 메서드 호출
//this를 쓰는것은 ActionListener 이라는 인터페이스를 매개변수로 사용하여 사용하기때문에
// ActionListener가 없으면 실행이 안되고 implements 를 사용하여 ActionListener를 써 this를 사용가능
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("콜백메서드 실행");
//actionPerformed를 선언하지않았지만 이것들이 실행이 될수있도록 "약속"이 되어있다.
//
System.out.println("버튼이 클릭되었습니다.");
System.out.println(e.toString());
}
}
public class EventListenerEx1 {
public static void main(String[] args) {
new MyFrame1();
}
}