Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java Swing에서 메인 패널에 여러 하위 패널을 추가하는 방법

JPanelJComponent 클래스의 하위 클래스로, Java에서 보이지 않는(invisible) 컴포넌트입니다. JPanel의 기본 레이아웃FlowLayout이며, 별도의 설정 없이도 컴포넌트들이 왼쪽에서 오른쪽으로 순서대로 배치됩니다.

JPanel에는 버튼, 텍스트 필드, 레이블, 테이블, 리스트, 트리 등 대부분의 Swing 컴포넌트를 자유롭게 추가할 수 있습니다.

add() 메서드로 여러 하위 패널 추가하기

메인 패널에 여러 개의 하위 패널(sub-panel)을 추가하려면 Container 클래스가 제공하는 add() 메서드를 사용하면 됩니다. 이 메서드는 전달된 컴포넌트를 해당 컨테이너의 마지막에 추가하고, 추가된 컴포넌트 자체를 반환합니다.

문법(Syntax)

public Component add(Component comp)

예제 코드(Example)

아래 예제는 하나의 메인 패널 안에 두 개의 서로 다른 색상을 가진 하위 패널을 배치하는 방법을 보여줍니다. 메인 패널은 GridLayout(3, 1)을 사용해 세로 방향으로 구역을 나누어 하위 패널들이 정돈되게 배치됩니다.

import java.awt.*;
import javax.swing.*;

public class MultiPanelTest extends JFrame {
    private JPanel mainPanel, subPanel1, subPanel2;

    public MultiPanelTest() {
        setTitle("MultiPanel Test");

        // 메인 패널 생성 및 레이아웃 설정
        mainPanel = new JPanel();
        mainPanel.setLayout(new GridLayout(3, 1));
        mainPanel.add(new JLabel("Main Panel", SwingConstants.CENTER));
        mainPanel.setBackground(Color.white);
        mainPanel.setBorder(BorderFactory.createLineBorder(Color.black, 1));

        // 하위 패널 1
        subPanel1 = new JPanel();
        subPanel1.add(new JLabel("Panel One", SwingConstants.CENTER));
        subPanel1.setBackground(Color.red);

        // 하위 패널 2
        subPanel2 = new JPanel();
        subPanel2.setBackground(Color.blue);
        subPanel2.add(new JLabel("Panel Two", SwingConstants.CENTER));

        // 메인 패널에 하위 패널들 추가
        mainPanel.add(subPanel1);
        mainPanel.add(subPanel2);

        add(mainPanel);
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    public static void main(String[] args) {
        new MultiPanelTest();
    }
}

실행 결과(Output)

프로그램을 실행하면 흰색 배경의 메인 패널 상단에 "Main Panel" 레이블이 표시되고, 그 아래로 빨간색 배경의 "Panel One"과 파란색 배경의 "Panel Two" 하위 패널이 세로로 정렬되어 나타납니다.

Java Swing에서 메인 패널에 여러 하위 패널을 추가하는 방법

핵심 정리

  • JPanel은 JComponent의 하위 클래스로, 다른 컴포넌트들을 담는 컨테이너 역할을 합니다.
  • JPanel의 기본 레이아웃은 FlowLayout이며, 필요에 따라 GridLayout, BorderLayout 등으로 변경할 수 있습니다.
  • Container 클래스의 add() 메서드를 사용하면 하나의 패널에 여러 하위 패널을 손쉽게 추가할 수 있습니다.
  • 각 패널마다 setBackground(), setBorder() 등을 활용해 시각적으로 구분할 수 있습니다.