알버트의 개발하는 블로그
자바 제25강 : 자바 GridLayout클래스 이용하여 바둑판 윈도우창 생성하기 본문
이번에는 GridLayout 클래스에 대해서 알아보도록 하겠습니다. GridLayout 클래스는 역시 윈도우창과 관련이 깊은 클래스입니다. 윈도우창을 GridLayout(바둑판, 격자 모양)모양으로 만들어 줄 수 있기 때문에 상당히 유용한 클래스라고 할 수 있습니다. Frame 클래스로 윈도우를 생성하고 그 윈도우를 바둑판 모양으로 만들어 보겠습니다. 간단한 예제를 통해서 GridLayout을 사용해보겠습니다.
GridLayout 클래스 예제
package kr.koreait.layoutTest;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
// GridLayout은 컨테이너를 격자(grid, 바둑판) 모양으로 나누고
// 컴포넌트를 나눠진 구역에 순서대로 배치하는 레이아웃 매니저이다.
public class GridLayoutTest extends Frame {
// 버튼클래스의 16개짜리 배열 생성
JButton[] buttons = new JButton[16];
// 각 버튼에 넣어줄 number배열
String[] number = {"1", "2", "3", "4", "5", "6","7","8","9","10","11","12",
"13","14","15","16"};
public GridLayoutTest() {
setTitle("GridLayoutTest"); //윈도우창의 제목 설정
setBounds(800, 100, 400, 400); //윈도우창의 위치와 크기 설정
setBackground(Color.PINK); //윈도우창의 배경색 설정
// new GridLayout(행, 열, 가로여백, 세로여백)
//4행 4열짜리 가로,세로 여백 3인 GridLayout생성
setLayout(new GridLayout( 4, 4, 3, 3 ));
for (int i =0; i < buttons.length; i++)
{ //버튼 객체를 생성
buttons[i] = new JButton(number[i]);
//버튼에 들어갈 문자 Font 설정
buttons[i].setFont(new Font("Dialog", Font.BOLD, 40));
//버튼 컴포넌트 추가
add(buttons[i]);
//버튼의 이름을 number배열의 원소들로 설정
buttons[i].setName(number[i]);
}
// windowclosing메소드를 오버라이드하여 윈도우창 닫기를 클릭하면 꺼지도록 코딩
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0); //프로그램 종료
}
});
setVisible(true); //윈도우창이 보이도록 설정
}
public static void main(String[] args) {
//메인에서 window 객체 생성
GridLayoutTest window = new GridLayoutTest();
}
}
코드는 이와 같습니다. Frame 클래스로 윈도우창을 생성하고 Font와 Color클래스로 윈도우창에 나올 글씨를 설정해주었습니다. 컨테이너에 버튼을 추가하기 전에 GridLayout으로 4행 4열짜리 바둑판 모양이 생기도록 코딩해주었는데요. 한번 실행해보겠습니다.
보시는 것처럼 4행 4열짜리, 그리고 버튼간의 가로세로 여백이 3인 GridLayout이 생성되었습니다. 그리고 각 버튼에는 number배열의 숫자들을 넣어주었습니다.
이처럼 GridLayout은 컨테이너와 컴포넌트에 관련해서 윈도우창을 조절할 수 있기 때문에 굉장히 유용한 클래스라고 할 수 있겠습니다. 읽어주셔서 감사합니다~
'프로그래밍 언어 > Java' 카테고리의 다른 글
자바 제27강 : 자바 JPanel 상속받아 MouseMotionListener 클래스로 원 그려보기 (0) | 2021.09.13 |
---|---|
자바 제26강 : 자바 Panel 클래스 상속받아서 paint() 메소드로 그래픽 구현하기 (0) | 2021.09.13 |
자바 제24강 : 자바 윈도우창과 버튼 만들고 ActionListener 클래스 구현해보기 (0) | 2021.09.10 |
자바 제23강 : 자바 Dimension 클래스로 윈도우창 조절하기 (디멘션) (0) | 2021.09.10 |
자바 제22강 : 자바 JFrame 클래스로 기본 윈도우창 만들기 (제이프레임) (0) | 2021.09.10 |