Loading...

JAVA / / 2022. 2. 8. 20:50

자바 46강. 클릭 리스너

반응형

addActionsListener는 클릭 리스너이다.

마우스 클릭에 반응하는 리스너인 것이다.

 

컴포넌트마다 리스너가 다르고,

나중에는 키보드 입력,

마우스 클릭에 대한 리스너도 볼 수 있다.

 

checkBox1.addActionListener(new ActionListener() {	// 클릭 이벤트만 가짐
	@Override
	public void actionPerformed(ActionEvent e) {
		System.out.println("체크박스1이 클릭되었습니다.");
	}
});

 

 

리스너의 타겟은 모두 인터페이스이다.

 

OS가 ItemEvent e라는 변수에

체크가 되었는지 안되었는지 정보를 전달해준다.

checkBox1.addItemListener(new ItemListener() {

	@Override
	public void itemStateChanged(ItemEvent e) {
		System.out.println(e);
	}
});

 

체크박스를 체크해준 뒤

전달받은 e를 출력해보니

많은 정보들 중 stateChange가 SELECTED 되어있는 것을 볼 수 있다. 

 

 

e가 가진 stateChange 상태를 통해

예쁘게 출력해줄 수 있다.

 

 

ItemEvent 클래스

package site.metacoding.ex13;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class EventEx01 extends JFrame {

	// 컴포넌트, 컨테이너들은 전역변수로 만들어줌
	// 생성자는 스택, 지역변수 오래못감

	JPanel myPanel;
	JButton btn1, btn2; // Ctrl + Shift + O import 단축키
	JCheckBox checkBox1;

	public EventEx01() {
		setSize(300, 300);
		setLocationRelativeTo(null); // 프레임 화면 중앙 배치
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 닫기버튼 클릭시 main 종료

		myPanel = new JPanel(); // heap에 띄우기
		add(myPanel);

		btn1 = new JButton("버튼1");
		myPanel.add(btn1);

		btn2 = new JButton("버튼2");
		myPanel.add(btn2);

		checkBox1 = new JCheckBox();
		myPanel.add(checkBox1);

		checkBox1.addItemListener(new ItemListener() {

			@Override
			public void itemStateChanged(ItemEvent e) {
				// System.out.println(e);
				// System.out.println(e.getStateChange());

				if (e.getStateChange() == 1) {
					System.out.println("체크되었습니다.");
				} else {
					System.out.println("체크 해제 되었습니다.");
				}
			}
		});

		// 윈도우야 지켜봐줘 이 버튼을
		btn1.addActionListener(new ActionListener() { // 익명 클래스

			// 버튼이 클릭되면 윈도우가 해당 메서드를 콜백해준다.
			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("버튼1이 클릭되었습니다.");

			}
		});

		btn2.addActionListener((ActionEvent e) -> {
			System.out.println("버튼2가 클릭되었습니다.");
		});

		setVisible(true);
	}

	public static void main(String[] args) {
		new EventEx01();
	}

}

 

 

 

 

[출처]

 

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

 

메타 코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

반응형