본문 바로가기

공부합시다/찍먹

[실습]체크박스와 체크박스 그룹

import java.awt.*;
import javax.swing.*;

public class Exam29 extends JFrame {

	private Label lb = new Label("좋아하는 과일을 선택하세요."); // Default가 왼쪽 정렬임
	private Checkbox a_cb = new Checkbox("사과");
	private Checkbox b_cb = new Checkbox("딸기");
	private Checkbox c_cb = new Checkbox("배");

	private Label gel = new Label("성별");
	private CheckboxGroup cg = new CheckboxGroup(); // 체크박스와 혼합하여 사용하면 자동으로 라디오버튼이 됨.
	private Checkbox m_cb = new Checkbox("M", cg, true); // 체크박스를 만들어서 체크박스그룹으로 올리는 것임
	private Checkbox f_cb = new Checkbox("F", cg, false);

	// 레이아웃 배치 하기
	private GridLayout gl = new GridLayout(4, 1);

	// 라벨 1행과 2행의 내용은 판넬로 구성
	// 과일 판넬
	private Panel p = new Panel();
	private GridLayout gl1 = new GridLayout(1, 3);
	// 성별 판넬
	private Panel p1 = new Panel();
	private GridLayout gl2 = new GridLayout(1, 2);

	public Exam29(String title) {// 생성자 구성
		super(title); // 상위 생성자를 호출
		super.setSize(500, 300); // 사이즈 지정(변경 안 됨)
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		this.init();

		Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); // (암기필요)스크린 사이즈를 자동으로 배정해서 크기 지정해서 가져온다는 내용
		Dimension frm = super.getSize(); // 프레임 크기를 받아옴
		int xpos = (int) (screen.getWidth() / 2 - frm.getWidth() / 2/* 반 이동 해야 하기 때문 */);
		int ypos = (int) (screen.getHeight() / 2 - frm.getHeight() / 2);
		super.setLocation(xpos, ypos);

		super.setResizable(false/* 크기 변경 불가하도록 함 */);
		super.setVisible(true);// 화면에 보여줘라!
	}

	public void init() {
		this.setLayout(gl); // 전체 레이아웃은 gl로 선택
		this.add(lb); // 과일 라벨
		p.setLayout(gl1); // 1행의 3열
		p.add(a_cb);
		p.add(b_cb);
		p.add(c_cb);
		this.add(p); // 판넬 넣기

		this.add(gel);
		p1.setLayout(gl2); // 1행의 2열
		p1.add(m_cb);
		p1.add(f_cb);
		this.add(p1); // 성별 라벨

	}

	public static void main(String[] ar) { // 메인 메소드 지정
		Exam29 ep = new Exam29("제목");
	}
}
반응형
LIST