컨테이너와 배치 개념
- 컨테이너에 부착되는 컴포넌트들의 위치와 크기는 컨테이너 내부에 있는 배치관리자(Layout Manager)에 의해 결정
- 배치와 관련하여 AWT나 스윙의 컨테이너 특징
- 컨테이너마다 배치관리자가 하나씩 있음(삭제 가능)
- 배치관리자는 컨테이너에 컴포넌트가 부착되는 시점에 컴포넌트의 위치와 크기를 결정
- 컨테이너의 크기가 변경되면 배치관리자는 컨테이너 내부 모든 컴포넌트들의 위치와 크기를 재조정
배치관리자 종류
import java.awt.*;
- 배치관리자 사용 위해 import문 필요
FlowLayout
- 컨테이너에 부착되는 순서대로 왼쪽에서 오른쪽으로 컴포넌트 배치
- 오른쪽에 더 이상 배치할 공간이 없으면 아래로 내려와서 다시 왼쪽에서 오른쪽으로 배치
- 컴포넌트 크기는 화면에 출력될 수 있는 적당한 크기로 설정
BorderLayout
- 컨테이너의 공간을 동, 서, 남, 북, 중앙의 5개로 나누고
- 응용프로그램에서 지정한 영역에 컴포넌트 배치
- 5개의 영역 중 하나를 반드시 지정해야 함
- 지정하지 않으면 중앙에 배치
- 컴포넌트 크기는 영역 크기에 맞추어 설정
GridLayout
- 컨테이너 공간을 응용프로그램에서 설정한 것과 동일한 크기의 2차원 격자로 구분
- 컴포넌트가 삽입되는 순서대로 좌에서 우로, 위에서 아래로 배치
- 컴포넌트 크기는 셀 크기와 동일하게 설정
CardLayout
- 컨테이너의 공간에 컴포넌트를 포개어 배치
- 카드를 쌓아 놓은 것처럼??
- 컴포넌트 크기는 컨테이너 크기와 동일하게 설정
컨테이너의 디폴트 배치관리자
- 컨테이너가 생성될 때 자동으로 디폴트 배치관리자 생성
setLayout() 메소드로 컨테이너에 새로운 배치관리자 설정
Container.setLayout(LayoutManager lm); //lm을 새로운 배치관리자로 설정
- Container 클래스의 setLayout() 메소드 호출
JPanel p = new JPanel();
p.setLayout(new BorderLayout()); //패널에 BorderLayout 배치관리자 설정
- JPanel에 BorderLayout 배치관리자 설정
Container contentPane = frame.getContentPane(); //프레임의 컨텐트팬
contentPane.setLayout(new FlowLayout()); //FlowLayout 배치관리자 설정
- 컨텐트팬의 배치관리자를 FlowLayout으로 변경
- 이때 배치 관리자 객채 생성을 위해 new 연산자를 포함해야 함
contentPane.setLayout(FlowLayout); //오류
'java > 개념' 카테고리의 다른 글
멀티태스킹 (0) | 2024.11.19 |
---|---|
배치관리자 (0) | 2024.06.28 |
스윙 GUI 프로그램 만들기 (0) | 2024.06.27 |
자바 GUI 패키지 (0) | 2024.06.27 |
GUI (0) | 2024.06.27 |