티스토리 뷰
import java.awt.*; //자바의 모든 기반은 awt. GUI의 가장 기본적인 패키지
import javax.swing.*;
import javax.swing.JFrame;
public class Exam28 extends JFrame {
private Label lb = new Label("전화기", Label.CENTER);// 센터에 두기
private Button[] bt = new Button[12]; // 버튼 12개를 배열에 넣어둠
private String[] str = new String[] { "*", "0", "#" }; // 마지막줄에 들어갈 특수문자 내용을 배열에 넣기
// 여기에 레이아웃을 정의함
private BorderLayout bl = new BorderLayout(10, 10);
private Panel p = new Panel();// 가상 영역의 공간배치를 위함
private GridLayout gl = new GridLayout(4, 3, 5, 5); // 4행. 3열. 세로 간격, 가로 간격
public Exam28(String title) {// 생성자 구성
super(title); // 상위 생성자를 호출
super.setSize(500, 500);
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() {
// (1) 전체 레이아웃 선정
this.setLayout(bl);
this.add("North", lb);
// (3) 판넬 레이아웃 지정
p.setLayout(gl);
for (int i = 0; i < bt.length; ++i) {
bt[i] = new Button(String.valueOf/* 문자열로 바꿀 수 있도록 해주는 명령어 */(i + 1)); // 배열은 0부터 시작이기 때문에 1로 시작하려면 +1
if (i >= 9) {
bt[i] = new Button(str[i - 9]);
} else {
bt[i] = new Button(String.valueOf(i + 1));
}
p.add(bt[i]);
// (2) 보더레이아웃에 올라가는 판넬 내용 지정
this.add("Center", p);
}
}
public static void main(String[] ar) { // 메인 메소드 지정
Exam28 ep = new Exam28("제목");
}
}
반응형
LIST
'공부합시다 > 찍먹' 카테고리의 다른 글
[JAVA] File Dialog (0) | 2021.04.05 |
---|---|
[JAVA] Choice class와 Choice List (0) | 2021.04.05 |
[실습]체크박스와 체크박스 그룹 (0) | 2021.04.05 |
[명품자바 프로그래밍] 2장 실습 (0) | 2021.03.17 |
21.03.12(금) 수업 내용 (0) | 2021.03.12 |
댓글