- [Java] 62. Swing: 이벤트 리스너2024년 04월 29일
- Song hyun
- 작성자
- 2024.04.29.:20
728x90반응형[Java] 62. Swing: 이벤트 리스너
1. 이벤트 리스너란?
-운영체제(OS)는 우리의 움직임(마우스 클릭, 커서 움직이기, 버튼 누르기 등)을 감지한다.=> 특정 동작이 감지되었을 때, OS에게 이벤트가 발생하도록 요청하는 것!
2. 응용 예제 만들기
: 버튼을 클릭하면 특정 스크립트가 출력되는 코드를 작성해보자.
ColorChangeFrame 클래스 살펴보기
(1) 멤버 변수
JButton 형식의 객체 button1을 가진다.
(2) 사용자 정의 생성자: ColorChangeFrame()
객체 생성 시, 순서대로 initData(), setInitLayout(), addEventListener()를 실행하게 한다.
(3) initData() 메서드
setSize: 창의 크기를 가로 세로 각각 500으로 설정한다.
setDefaultCloseOperation: x버튼을 눌렀을 때의 결과를 처리한다. (=창닫기)
button1=new JButton: 새로운 JButton 객체를 생성한다.
(4) setInitLayout() 메서드
setLayout(new FlowLayout)()): 배치관리자를 FlowLayout으로 설정한다.
add(button1): initData() 메서드에서 생성한 button1 객체를 화면에 추가한다.
setVisible(true); 창이 보이도록 설정한다.
(5) addEventListener() 메서드
button1.addActionListener((ActionListener)this);
-addActionListener는 파라미터값으로 actionListener를 받는다.
-actionListener는 button1이 눌러지는지, 계속 이벤트를 지켜보게 된다.
(6) actionPerformed() 메서드
ㄴ해당 메서드는 actionListener가 반응하면 호출되는 메서드이다.
System.out.println: 해당 스크립트를 출력한다.
e.toString: actionListener를 호출한 버튼(e=button1) 객체의 정보를 문자열로 반환한다.
setBackground(Color.BLACK) 배경을 검은 색으로 전환시킨다.package ch05; import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; // 이벤트 리스너를 사용하는 방법 // 1. implements ActionListener를 사용하는 방법 // ActionListener: 운영 체제가 제어하는 이벤트를 등록할 수 있다. public class ColorChangeFrame extends JFrame implements ActionListener { // 이벤트 리스너에 대한 개념을 이해하자. private JButton button1; public ColorChangeFrame() { initData(); setInitLayout(); addEventListener(); } private void initData() { setSize(500,500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); button1=new JButton("button1"); } private void setInitLayout() { setLayout(new FlowLayout()); add(button1); setVisible(true); } private void addEventListener() { // button1이 눌러지는지 계속 이벤트를 지켜보고 있어. // 이벤트 등록 //addActionListener는 actionListener를 파라미터 값으로 받는다. button1.addActionListener((ActionListener) this); } public static void main(String[] args) { new ColorChangeFrame(); } public void actionPerformed(ActionEvent e) { System.out.println("actionPerformed 메서드 호출()"); System.out.println(e.toString()); setBackground(Color.BLACK); } // 약속되어있던 추상 메서드를 오버라이드했다. }
728x90반응형'Java > 자바 Swing' 카테고리의 다른 글
[Java] 64. Swing: 키보드 리스너 (0) 2024.04.30 [Java] 63. Swing: 리스너 응용-리스너를 구현하는 두 가지 방법 (0) 2024.04.29 [Java] 61. Swing: 이미지 겹치기 (0) 2024.04.29 [Java] 60. Swing: 이미지 출력하기 (0) 2024.04.29 [Java] 59. 사용자 정의 예외 클래스 (0) 2024.04.29 다음글이전글이전 글이 없습니다.댓글