WEB-STUDY

자바 GUI 기초

비숑주인 2025. 1. 6. 19:28

1. GUI 프로그램 개요

GUI(Graphical User Interface)는 사용자와 프로그램이 상호작용할 수 있도록 컴포넌트로 구성된 환경이다. 자바에서는 AWT와 Swing 두 가지 주요 GUI 패키지가 있으며, 최근에는 더 많은 기능과 유연성을 제공하는 Swing이 주로 사용 된다. 

AWT vs Swing

  • AWT(Abstract Windowing Toolkit):
    • 초기 자바 버전부터 제공된 GUI 패키지.
    • 운영체제의 리소스를 사용하며, 중량 컴포넌트(heavy weight component).
    • 최근에는 거의 사용되지 않음.
  • Swing:
    • AWT를 기반으로 작성된 자바 라이브러리.
    • 운영체제와 독립적인 경량 컴포넌트(light weight component) 제공.
    • 모든 AWT 컴포넌트 이름 앞에 "J"가 붙음(e.g., JFrame, JButton).

2. 컨테이너와 컴포넌트

컨테이너

  • 다른 컴포넌트를 포함할 수 있는 GUI 요소
  • 대표적인 Swing 컨테이너:
    • JPanel
    • JFrame
    • JApplet
    • JDialog
    • JWindow

컴포넌트

  • 컨테이너에 포함되어야 화면에 출력될 수 있는 GUI 객체
  • 예:
    • 버튼(JButton), 텍스트필드(JTextField), 레이블(JLabel).

포함 관계

  • GUI 프로그램은 최상위 컨테이너를 기반으로 구성 된다. 
  • 최상위 컨테이너 → 하위 컨테이너 → 컴포넌트 순으로 레이어를 쌓는 방식으로 설계 된다. 

3. 배치 관리자 (Layout Manager)

역할

  • 컨테이너 내부의 컴포넌트 위치와 크기를 결정 한다. 
  • 컨테이너의 크기가 변경되면 컴포넌트의 크기와 위치도 자동 조정 된다. 

대표적인 배치 관리자

  1. FlowLayout
    • 컴포넌트를 삽입된 순서대로 왼쪽에서 오른쪽으로 배치.
    • 공간이 부족하면 다음 줄로 이동.
    • 기본 배치 관리자(패널 및 애플릿).
  2. BorderLayout
    • 컨테이너를 동(EAST), 서(WEST), 남(SOUTH), 북(NORTH), 중앙(CENTER) 5개 영역으로 나눔.
    • 영역을 지정하지 않으면 기본적으로 중앙(CENTER) 에 배치.
  3. GridLayout
    • 컨테이너를 행과 열로 나눈 격자 형태로 배치.
    • 동일한 크기의 셀로 나뉘며, 컴포넌트가 순서대로 채워짐.

배치 관리자 설정 방법

 

JPanel panel = new JPanel();
panel.setLayout(new BorderLayout()); // BorderLayout 설정

 

 

5. 기초 컴포넌트

  • JLabel: 텍스트 또는 이미지를 표시.
  • JTextField: 사용자가 텍스트를 입력할 수 있는 공간.
  • JButton: 클릭 시 특정 동작을 실행.