package CHAPTER10.Exams;
/*
 * LAB 2: 다양한 배치 관리 연습
프로그램 작성 조건:

각각 FlowLayout, BorderLayout, GridLayout을 사용한 세 가지 GUI 프로그램을 작성하세요.
각 GUI는 버튼으로만 구성하며, 버튼에는 순서대로 "버튼 1", "버튼 2", ...라는 텍스트를 표시하세요.
실행 결과:

FlowLayout: 버튼들이 왼쪽에서 오른쪽으로 나열됩니다.
BorderLayout: 버튼들이 각 영역(North, South, East, West, Center)에 배치됩니다.
GridLayout: 2x2 그리드에 버튼이 배치됩니다.
힌트:

각 레이아웃의 기본 설정과 주요 메서드를 확인하세요.
 */
import javax.swing.*;
import java.awt.*;

public class Lab2Layouts {
    public static void main(String[] args) {
        // FlowLayout 예제
        JFrame flowFrame = new JFrame("FlowLayout");
        flowFrame.setSize(400, 200);
        flowFrame.setLayout(new FlowLayout());
        flowFrame.add(new JButton("버튼 1"));
        flowFrame.add(new JButton("버튼 2"));
        flowFrame.add(new JButton("버튼 3"));
        flowFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        flowFrame.setVisible(true);

        // BorderLayout 예제
        JFrame borderFrame = new JFrame("BorderLayout");
        borderFrame.setSize(400, 200);
        borderFrame.setLayout(new BorderLayout());
        borderFrame.add(new JButton("북쪽"), BorderLayout.NORTH);
        borderFrame.add(new JButton("남쪽"), BorderLayout.SOUTH);
        borderFrame.add(new JButton("동쪽"), BorderLayout.EAST);
        borderFrame.add(new JButton("서쪽"), BorderLayout.WEST);
        borderFrame.add(new JButton("중앙"), BorderLayout.CENTER);
        borderFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        borderFrame.setVisible(true);

        // GridLayout 예제
        JFrame gridFrame = new JFrame("GridLayout");
        gridFrame.setSize(400, 200);
        gridFrame.setLayout(new GridLayout(2, 2));
        gridFrame.add(new JButton("버튼 1"));
        gridFrame.add(new JButton("버튼 2"));
        gridFrame.add(new JButton("버튼 3"));
        gridFrame.add(new JButton("버튼 4"));
        gridFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        gridFrame.setVisible(true);
    }
}
/*
 * LAB 2: 다양한 배치 관리 연습
주요 로직:

FlowLayout: 컴포넌트를 수평으로 정렬하며, 자동으로 줄 바꿈됩니다.
기본 정렬이 중앙이므로, 위치를 변경하려면 FlowLayout.LEFT 또는 FlowLayout.RIGHT를 명시해야 함.
BorderLayout: 5개의 영역(NORTH, SOUTH, EAST, WEST, CENTER) 중 하나에만 배치 가능.
같은 영역에 여러 컴포넌트를 추가하려면 별도의 JPanel 사용이 필요.
GridLayout: 행과 열을 고정하며, 모든 셀의 크기가 동일.
셀 간의 간격은 new GridLayout(rows, cols, hgap, vgap)을 통해 조정 가능.
주의사항:

BorderLayout에 추가한 컴포넌트는 중복되면 마지막 컴포넌트만 표시됩니다.
GridLayout은 빈 셀 없이 컴포넌트를 추가해야 레이아웃이 어긋나지 않습니다.

 * */
