Please Enable JavaScript!
Gon[ Enable JavaScript ]

자바(Java) AWT – Checkbox 컨트롤 사용법과 예제

자바(JAVA)
반응형

자바(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) AWT – Checkbox 컨트롤 사용법과 예제

 

반응형
Posted by 녹두장군1
,