GridLayout 배치관리자
배치 방법
GridLayout은 컨테이너 공간을 그리드(격자) 모양으로 분할하여 각 셀에 하나씩 컴포넌트를 배치하는 방법입니다. GridLayout은 부착되는 순서대로 컴포넌트를 셀에 배치합니다.
컴포넌트를 삽입하는 방법은 다른 배치관리자와 별반 다르지 않으며 다음과 같습니다.
container.setLayout(new GridLayout(4, 3)); // 4x3 분할로 컴포넌트 배치
container.add(new JButton("1")); // 상단 왼쪽 첫 번째에 버튼 배치
conainer.add(new JButton("2")); // 그 옆 셀에 버튼 배치
GridLayout의 생성자와 속성
GridLayout 배치관리자의 생성자는 다음과 같습니다.
GridLayout()
GridLayout(int rows, int cols)
GridLayout(int rows, int cols, int hGap, int vGap)
- rows: 그리드의 행 수, 디폴트는 1
- cols: 그리드의 열 수, 디폴트는 1
- hGap: 좌우 컴포넌트 사이의 수평 간격, 픽셀 단위, 디폴트는 0
- vGap: 상하 컴포넌트 사이의 수직 간격, 픽셀 단위, 디폴트는 0
GridLayout의 생성자를 사용하는 예를 들면 다음 코드와 같습니다.
new GridLayout(); // 1x1 그리드에 배치하는 GridLayout 배치관리자 생성
new GridLayout(4, 3, 5, 5); // 4x3 그리드에 hGap=5, vGap=5의 간격으로 컴포넌트를 배치하는 GridLayout 배치관리자 생성
셀 수보다 많은 컴포넌트가 추가되면 생성자에 주어진 행 수(rows)와 열 수(cols)가 지켜지지 않으며, 모든 컴포넌트를 수용하도록 행과 열의 수가 적당히 변형됩니다.
GridLayout으로 입력 폼 만들기
import javax.swing.*;
import java.awt.*;
public class GridLayoutEx extends JFrame {
public GridLayoutEx() {
setTitle("GridLayout Sample");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 4x3 격차의 GridLayout 배치 관리자 생성
GridLayout grid = new GridLayout(4, 3);
grid.setVgap(5); // 격자 사이의 수직 간격을 5 픽셀로 설정
Container c = getContentPane();
c.setLayout(grid); // grid를 컨텐트팬의 배치관리자로 지정
c.add(new JLabel(" 이름"));
c.add(new JTextField(""));
c.add(new JLabel(" 학번"));
c.add(new JTextField(""));
c.add(new JLabel(" 학과"));
c.add(new JTextField(""));
c.add(new JLabel(" 과목"));
c.add(new JTextField(""));
setSize(300, 200);
setVisible(true);
}
public static void main(String[] args) {
new GridLayoutEx();
}
}
실행결과

'프로그래밍 언어 > JAVA' 카테고리의 다른 글
| 여러 컴포넌트를 가진 복잡한 GUI 만들기 (5) | 2025.06.02 |
|---|---|
| 배치관리자 없는 컨테이너 (2) | 2025.05.30 |
| BorderLayout 배치 관리자 (1) | 2025.05.24 |
| FlowLayout 배치관리자 (1) | 2025.05.21 |
| 컨테이너(Container)와 배치(Layout) (1) | 2025.05.20 |