티스토리 뷰

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
댓글
링크
공지사항
최근에 올라온 글