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

Java Container 클래스란? 종류와 핵심 메서드까지 한눈에 정리

컨테이너(Container)란 무엇인가?

Java에서 컨테이너(Container) 클래스는 다른 컴포넌트들을 담고 관리할 수 있는 특별한 컴포넌트를 의미합니다. 쉽게 말해 버튼, 텍스트 필드 같은 UI 요소들을 하나로 묶어 화면에 배치하는 '그릇' 역할을 한다고 이해하면 됩니다.

Swing 컨테이너의 두 가지 유형

Swing에서 제공하는 컨테이너는 크게 최상위 컨테이너(Top-Level Container)저수준 컨테이너(Low-Level Container)로 나뉩니다.

  • 최상위 컨테이너: 운영체제의 네이티브 윈도우와 직접 연결되는 헤비급(Heavyweight) 컨테이너입니다. 대표적으로 JFrame, JApplet, JWindow, JDialog가 있으며, 모든 GUI 애플리케이션은 반드시 하나 이상의 최상위 컨테이너를 가져야 합니다.
  • 저수준 컨테이너: 최상위 컨테이너 안에 배치되어 세부적인 UI 구성을 담당하는 라이트급(Lightweight) 컨테이너입니다. 대표적인 예로 JPanel이 있으며, 컴포넌트를 그룹화하고 레이아웃을 정리하는 데 활용됩니다.

가장 많이 사용되는 컨테이너

실무에서 가장 빈번하게 사용되는 컨테이너는 JFrame, JPanel, JWindow입니다. JFrame은 애플리케이션의 기본 창을 만들 때, JPanel은 창 내부에서 컴포넌트를 구분하고 배치할 때 주로 사용됩니다.

Container 클래스의 주요 메서드

  • add(): 컨테이너에 새로운 컴포넌트를 추가합니다.
  • invalidate(): 컨테이너의 레이아웃을 무효화하여 다시 배치하도록 표시합니다.
  • validate(): 무효화된 컨테이너의 레이아웃을 다시 검증하고 갱신합니다.

예제 코드

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

public class ContainerTest extends JFrame { // 최상위 컨테이너(Top-Level)
    JPanel panel; // 저수준 컨테이너(Low-Level)
    JTextField field;
    JButton btn;

    public ContainerTest() {
        setTitle("Container Test");
        panel = new JPanel();
        field = new JTextField(20);
        panel.add(field);
        btn = new JButton("Submit");
        panel.add(btn);
        add(panel, BorderLayout.CENTER);
        setSize(350, 275);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

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

위 예제에서는 JFrame이 최상위 컨테이너 역할을 하고, 그 안에 JPanel이라는 저수준 컨테이너를 배치한 뒤, 패널에 텍스트 필드와 버튼을 추가하는 구조입니다.

실행 결과

코드를 실행하면 제목이 "Container Test"로 설정된 창이 화면 중앙에 나타나며, 텍스트 입력 필드와 Submit 버튼이 패널 안에 함께 표시됩니다.