-
[JAVA] 자바 JCheckBox, 체크박스 컴포넌트,체크박스 생성 예제,JCheckBox에서 item 이벤트 처리 , item 이벤트 처리 예제Languages/Java 2021. 5. 4. 15:19반응형
JCheckBox
선택(selected)과 비선택(deselected)의
두 상태만 가지는 체크 버튼
생성자
JCheckBox() 빈 체크박스
JCheckBox(String text) 문자열 체크박스
JCheckBox(String text, boolean selecd) 문자열 체크박스
JCheckBox(Icon image) 이미지 체크박스
JCheckBox(Icon image, boolean selected) 이미지 체크박스
JCheckBox(String text, Icon image) 문자열과 이미지를 가진 체크박스
JCheckBox(String text, Icon image, boolean selected) 문자열과 이미지를 가진 체크박스
** ㄴselected : true이면 선택 상태로 초기화, 디폴트는 해제 상태
체크 박스 생성
문자열 체크 박스
"사과" 텍스트를 가진 체크박스 생성
JCheckBox c = new JCheckBox("사과");
"배" 텍스트를 가지고 선택 상태로 체크박스 생성
JCheckBox c = new JCheckBox("배",ture);
이미지 체크박스
cherry.jpg이미지와 "체리" 텍스트를 가진 체크박스 생성의 예
ImageIcon cherryIcon = new ImageIcon("imeges/cherry.jpg"); ImageIcon selectedCherryIcon = new ImageIcon("imeges/selectedCherry.jpg"); JCheckBox cherry = new JCheckBox("체리",cherryIcon); cherry.setSelectedIcon(selectedCherryIcon); //선택 상태의 이미지 달기
체크박스 생성 예제
package project; import javax.swing.*; import java.awt.*; public class CheckBoxEx extends JFrame { public CheckBoxEx() { setTitle("체크박스 만들기 예제"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c = getContentPane(); c.setLayout(new FlowLayout()); ImageIcon cherryIcon = new ImageIcon("images/cherry.jpg"); ImageIcon selectedcherryIcon = new ImageIcon("images/selectedCherry.jpg"); JCheckBox apple = new JCheckBox("사과"); JCheckBox pear = new JCheckBox("배",true); JCheckBox cherry = new JCheckBox("체리", cherryIcon); cherry.setBorderPainted(true); cherry.setSelectedIcon(selectedcherryIcon); c.add(apple); c.add(pear); c.add(cherry); setSize(250,250); setVisible(true); } public static void main(String [] args) { new CheckBoxEx(); } }
실행결과
기본화면 >>>
체리를 클릭 했을 때 selectedIcon으로 이미지 변경 >>>
JCheckBox에서 item 이벤트 처리
item 이벤트
체크박스나 라디오버튼의 선택 상태가 바뀌어 발생하는 이벤트
마우스나 키보드로 체크박스를 선택 상태를 바꾸는 경우
프로그램에서 선택 상태를 바꾸는 경우
JCheckBox c = new JCheckBox("사과"); c.setSelected(true); // 선택 상태 변경
알고 있자!
컴포넌트는 다른 이벤트에 대한 리스너를 동시에 가질 수 있다.
컴포넌트는 한 이벤트에 대해 여러 개의 리스너를 동시에 가질 수 있다.
itemListener 인터페이스의 추상 메소드
void itemStateChanged(ItemEvent e) 체크박스의 선택/해제 상태가 변하는 경우 호출
itemEvent의 주요 메소드
int getStateChange() 리턴 값은 선택된 경우 ItemEvent.SELECTED, 해제된 경우 ItemEvent.DESELECTED Object getItem() 이벤트를 발생시킨 아이템 객체 리턴, 체크박스의 경우 JCheckBox 컴포넌트의 래퍼런스 리턴
이벤트 처리 생성 예제
package project; import javax.swing.*; import java.awt.event.*; import java.awt.*; public class CheckBoxItemEventEx extends JFrame { private JCheckBox [] fruits = new JCheckBox [3]; private String [] names = {"사과", "배", "체리"}; private JLabel sumLabel; public CheckBoxItemEventEx() { setTitle("체크박스와 ItemEvent 예제"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c = getContentPane(); c.setLayout(new FlowLayout()); c.add(new JLabel("사과 100원, 배 500원, 체리 20000원")); MyItemListener listener = new MyItemListener(); for(int i=0; i<fruits.length; i++) { fruits[i] = new JCheckBox(names[i]); fruits[i].setBorderPainted(true); c.add(fruits[i]); fruits[i].addItemListener(listener); } sumLabel = new JLabel("현재 0 원 입니다."); c.add(sumLabel); setSize(250,200); setVisible(true); } class MyItemListener implements ItemListener { private int sum = 0; // 가격의 합 public void itemStateChanged(ItemEvent e) { if(e.getStateChange() == ItemEvent.SELECTED) { if(e.getItem() == fruits[0]) sum += 100; else if(e.getItem() == fruits[1]) sum += 500; else sum += 20000; } else { if(e.getItem() == fruits[0]) sum -= 100; else if(e.getItem() == fruits[1]) sum -= 500; else sum -= 20000; } sumLabel.setText("현재 "+ sum + "원 입니다."); } } public static void main(String [] args) { new CheckBoxItemEventEx(); } }
실행결과
반응형'Languages > Java' 카테고리의 다른 글
[JAVA]자바 마우스리스너/어댑터 클래스/키 리스너/키 판별 방법 (0) 2021.05.10 [JAVA] JRadionButton, 라디오버튼 컴포넌트, JTextField, 텍스트필드 컴포넌트, JTextArea, 텍스트영역 컴포넌트 (0) 2021.05.04 [JAVA]스윙 컴포넌트/JComponent/JLabel/button component (0) 2021.04.24 [JAVA]자바의 이벤트 처리/이벤트 개념/이벤트 리스너/작성 방법/ 독립 클래스/내부 클래스/익명 클래스 (0) 2021.04.24 [JAVA] 자바의 GUI/awt/swing/컨테이너와컴포넌트/스윙프레임만들기/관리자 대표 유형 4가지/FlowLayout/BorderLayout/ ... (0) 2021.04.24