티스토리 뷰

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

public class Exam30 extends JFrame {

	// 내용 구성에 따라 모두 정의
	private Label blood_lb = new Label("혈액형"); // 디폴트로 왼쪽에 배치
	private Choice blood_ch = new Choice();

	private Label birth_lb = new Label("생년월일");
	private Choice year_ch = new Choice();
	private Label year_lb = new Label("년");
	private Choice month_ch = new Choice();
	private Label month_lb = new Label("월");
	private Choice day_ch = new Choice();
	private Label day_lb = new Label("일");

	private Label alpha_lb = new Label("알파벳목록");
	private List alpha_li = new List();
	// => 화면의 구성 레이아웃이 필요함.
	private Panel p = new Panel();
	private GridLayout gl = new GridLayout(4, 1);

	private Panel p1 = new Panel();

	private GridBagLayout gbl = new GridBagLayout();

	private Panel p2 = new Panel();

	private BorderLayout bl1 = new BorderLayout();

	// 전체 레이아웃 자체를 보더레이아웃으로 선정함.
	private BorderLayout bl = new BorderLayout();

	public Exam30(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(bl);
		// Data setting
		blood_ch.add("A형");
		blood_ch.add("B형");
		blood_ch.add("AB형");
		blood_ch.add("O형");

		for (int i = 2021; i > 1900; --i) {
			year_ch.add(String.valueOf(i));
		}
		for (int i = 1; i <= 12; ++i) {
			month_ch.add(String.valueOf(i));
		}
		for (int i = 1; i <= 31; ++i) {
			day_ch.add(String.valueOf(i));
		}
		for (char i = 'A'; i <= 'Z'; ++i) {
//			String s = "" + i; // 문자열 구성 형태로 나타냄
			String s = "" + i + i + i; // 3개씩 보이게 하기
			alpha_li.add(s);
		}

		p.setLayout(gl);// 4행 1열로 구성된 레이아웃
		p1.setLayout(gbl); // 1행 3열

		p.add(blood_lb);
		p.add(blood_ch);

		p.add(birth_lb);
		p.add(p1);

		p1.add(year_ch);
		p1.add(year_lb);
		p1.add(month_ch);
		p1.add(month_lb);
		p1.add(day_ch);
		p1.add(day_lb);
		this.add("Center", p); // 판넬 위치 : 센터
		p2.setLayout(bl1);
		p2.add("North", alpha_lb); // 동쪽에도 북쪽위치에 두도록 함
		p2.add("Center", alpha_li);
		this.add("East", p2); // 판넬 위치 : 동쪽

	}

	public static void main(String[] ar) { // 메인 메소드 지정
		new Exam30("제목");
	}
}
반응형
LIST
댓글
링크
공지사항
최근에 올라온 글