티스토리 뷰
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
'공부합시다 > 찍먹' 카테고리의 다른 글
[JAVA] 계산기 버튼 만들기 (0) | 2021.04.05 |
---|---|
[JAVA] File Dialog (0) | 2021.04.05 |
[JAVA] 버튼과 레이블만으로 전화기 구성 만들기 (0) | 2021.04.05 |
[실습]체크박스와 체크박스 그룹 (0) | 2021.04.05 |
[명품자바 프로그래밍] 2장 실습 (0) | 2021.03.17 |
댓글