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)
역할
- 컨테이너 내부의 컴포넌트 위치와 크기를 결정 한다.
- 컨테이너의 크기가 변경되면 컴포넌트의 크기와 위치도 자동 조정 된다.
대표적인 배치 관리자
- FlowLayout
- 컴포넌트를 삽입된 순서대로 왼쪽에서 오른쪽으로 배치.
- 공간이 부족하면 다음 줄로 이동.
- 기본 배치 관리자(패널 및 애플릿).
- BorderLayout
- 컨테이너를 동(EAST), 서(WEST), 남(SOUTH), 북(NORTH), 중앙(CENTER) 5개 영역으로 나눔.
- 영역을 지정하지 않으면 기본적으로 중앙(CENTER) 에 배치.
- GridLayout
- 컨테이너를 행과 열로 나눈 격자 형태로 배치.
- 동일한 크기의 셀로 나뉘며, 컴포넌트가 순서대로 채워짐.
배치 관리자 설정 방법
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout()); // BorderLayout 설정
5. 기초 컴포넌트
- JLabel: 텍스트 또는 이미지를 표시.
- JTextField: 사용자가 텍스트를 입력할 수 있는 공간.
- JButton: 클릭 시 특정 동작을 실행.