콜백 메소드는 특정 조건이 있고, 이 조건을 만족할 때마다 기능을 수행한다고 하자.
콜백을 사용하면 이벤트가 발생하여 특정 조건을 만족시켰을 경우, 콜백 함수를 호출하여 바로 기능을 수행할 수 있다.
콜백 함수는 바로바로 사용할 수 있으며, 조건이 맞는지 틀린지 확인하는 과정을 거치지 않아도 되기에 효율적이다.
만약, 콜백을 사용하지 않고 계속 객체에 접근하는 방식으로 코드를 작성하였다고 하자.
해당 객체에 어떠한 오류가 발생할 경우 그 객체부터 접근하는 과정까지 모두 수정이 필요할 수 있다.
콜백이라는 개념을 사용하면 객체의 주소만 연결시켜주면 바로 기능을 수행할 수 있다.
package blogpractice;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
// 어떠한 이벤트를 발생 시키기 위해서는 ActionListener을 사용해주어야 한다. ActionListener을 구현!!!!
class MyFrame1 extends JFrame implements ActionListener{
JButton button;
public MyFrame1() {
initData();
setInitLayout();
addEventListener();
}
private void initData() {
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
button = new JButton("button");
}
private void setInitLayout() {
setVisible(true);
setLayout(new FlowLayout()); // setLayout : 배치관리자 / FlowLayout정렬을 초기화 해준다.
add(button); // FlowLayout정렬로 버튼이 배치가 된다.
}
private void addEventListener() {
// 등록을 해주어야 한다. , ActionListener을 구현을 해주었기에 추상메소드를 일반 메소드로 재정의해준다.
// ActionListener을 구현을 해주었기에 this는 MyFrame1의 주소값을 바라 본다고 알수가있다.
// 즉 버튼에 addActionListener등록해주고 매개변수 this인 ActionListener인터페이스가 들어가게 되면 actionPerformed을 호출하게된다.
button.addActionListener(this); // 버튼을 누르게되면 밑에 있는actionPerformed 호출
}
// 재정의 됨
@Override
public void actionPerformed(ActionEvent e) { // 버튼을 눌렀을시 호출이 되는 메소드이다.
System.out.println("콜백 메소드");
System.out.println("버튼이 눌러졌습니다.");
System.out.println(e.toString());
}
}
public class EventListenerEx1 {
public static void main(String[] args) {
new MyFrame1();
}
}
'개발일지 > 자바' 카테고리의 다른 글
Button 리스너 등록 색 변경하기 - 1 (0) | 2022.09.17 |
---|---|
각각의 버튼의 콜백메소드 (0) | 2022.09.17 |
Paint(좌표값을 이용한 그림 그리는 방법) (0) | 2022.09.14 |
(Image Class, inner Class 활용), 이미지 파일 불러오는 법 - 2 (0) | 2022.09.14 |
(Image Class, inner Class 활용), 이미지 파일 불러오는 법 - 1 (0) | 2022.09.14 |
댓글