자바(Java) AWT – Checkbox 컨트롤 사용법과 예제 |
환경 : Eclipse Mars, Android 4.2.2, JDK 1.7 |
체크박스 컨트롤은 체크를 하면 true, 해제를 하면 False 리턴하는 옵션 컨트롤입니다. Checkbox 에는 기본적으로 라벨이 탑재되어있으며 생성자 인수로 텍스트를 넘기게 되면 라벨명이 셋팅됩니다.
▼ Checkbox 도 Button 과 마찬가지로 박스에 체크를 하는 순간 상태값이 변동되므로 이벤트가 발생하게 됩니다. 이벤트가 발생하면 항상 processEvent() 함수가 실행되게 되며 그 안에서 해당하는 체크박스를 구분한후 해당 체크박스에 processItemEvent() 함수를 실행하게 됩니다.
체크박스에 상태값이 변경되었을 때 이벤트를 받기위해 addItemListener() 함수에 ItemListener 객체를 등록합니다. ItemListener객체에서 기본적으로 실행되는 itemStateChanged() 함수를 구현하면 되는 것입니다.
chk1.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { statusLabel.setText("바나나 Checkbox: " + (e.getStateChange() == 1 ? "checked" : "unchecked")); } });
▼ 이렇게 체크박스마다 이벤트를 따로 다 받아야 하기 때문에 각 체크박스마다 addItemListener() 함수에 ItemListener 객체를 생성해서 등록합니다.
Checkbox chk1 = new Checkbox("바나나"); Checkbox chk2 = new Checkbox("감자"); Checkbox chk3 = new Checkbox("고구마"); chk1.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { statusLabel.setText("바나나 Checkbox: " + (e.getStateChange() == 1 ? "checked" : "unchecked")); } }); chk2.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { statusLabel.setText("감자 Checkbox: " + (e.getStateChange() == 1 ? "checked" : "unchecked")); } }); chk3.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { statusLabel.setText("고구마 Checkbox: " + (e.getStateChange() == 1 ? "checked" : "unchecked")); } });
▼ 이벤트를 등록하였으면 이제 Panel 에 add() 함수를 이용해 컨트롤을 추가합니다. 그리고 Frame 의 setVisible(true) 로 셋팅하여 화면에서 보이게 합니다.
controlPanel.add(chk1); controlPanel.add(chk2); controlPanel.add(chk3); mainFrame.setVisible(true);
▼ 지금까지 설명한 내용에 대한 전체 소스에 대한 내용입니다.
import java.awt.Checkbox; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Label; import java.awt.Panel; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class AwtCheckboxControl { private Frame mainFrame; private Label headerLabel; private Label statusLabel; private Panel controlPanel; public AwtCheckboxControl() { prepareGUI(); } public static void main(String[] args) { AwtCheckboxControl awtControlDemo = new AwtCheckboxControl(); awtControlDemo.showCheckbox(); } private void prepareGUI() { // Frame 에 대한 셋팅 mainFrame = new Frame("Java AWT 샘플"); mainFrame.setSize(400, 400); mainFrame.setLayout(new GridLayout(3, 1)); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent) { System.exit(0); } }); // 상단에 있는 라벨 headerLabel = new Label(); headerLabel.setAlignment(Label.CENTER); headerLabel.setText("Control Test : Checkbox"); // 하단 상태값 라벨 statusLabel = new Label(); statusLabel.setText("Status Lable"); statusLabel.setAlignment(Label.CENTER); statusLabel.setSize(350, 100); controlPanel = new Panel(); controlPanel.setLayout(new FlowLayout()); mainFrame.add(headerLabel); mainFrame.add(controlPanel); mainFrame.add(statusLabel); mainFrame.setVisible(true); } private void showCheckbox() { Checkbox chk1 = new Checkbox("바나나"); Checkbox chk2 = new Checkbox("감자"); Checkbox chk3 = new Checkbox("고구마"); chk1.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { statusLabel.setText("바나나 Checkbox: " + (e.getStateChange() == 1 ? "checked" : "unchecked")); } }); chk2.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { statusLabel.setText("감자 Checkbox: " + (e.getStateChange() == 1 ? "checked" : "unchecked")); } }); chk3.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { statusLabel.setText("고구마 Checkbox: " + (e.getStateChange() == 1 ? "checked" : "unchecked")); } }); controlPanel.add(chk1); controlPanel.add(chk2); controlPanel.add(chk3); mainFrame.setVisible(true); } }
▼ 실행하면 아래와 같은 화면이 나오게 됩니다. 체크하면 체크박스 라벨이 아래 status Lable 에 표시 되게 됩니다.
'자바(JAVA)' 카테고리의 다른 글
자바(Java) AWT – Canvas 컨트롤의 간단한 사용예제 (0) | 2015.01.14 |
---|---|
자바(Java) AWT – TextArea 컨트롤을 사용하는 방법 (1) | 2014.12.10 |
자바(Java) AWT – TextField 컨트롤 이용하는 방법과 예제 (2) | 2014.12.03 |
자바(Java) AWT – List 컨트롤 구현 방법과 예제 (0) | 2014.11.30 |
자바(Java) 웹페이지에 접속해서 html 소스 긁어 오기위한 방법 (2) | 2014.11.20 |
자바스크립트(javascript) 배열로 구성하여 input 객체에 넣고 POST 넘겼을때 (4) | 2014.09.18 |
웹페이지에서 구글맵 구현 (0) | 2014.02.25 |
Java 에서 Exception 의 내용을 추출하고 싶을 때 (1) | 2014.02.12 |