알버트의 개발하는 블로그

자바 제25강 : 자바 GridLayout클래스 이용하여 바둑판 윈도우창 생성하기 본문

프로그래밍 언어/Java

자바 제25강 : 자바 GridLayout클래스 이용하여 바둑판 윈도우창 생성하기

알버트 2021. 9. 13. 10:25

 

이번에는 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은 컨테이너와 컴포넌트에 관련해서 윈도우창을 조절할 수 있기 때문에 굉장히 유용한 클래스라고 할 수 있겠습니다. 읽어주셔서 감사합니다~