본문 바로가기
java/개념

컨테이너와 배치

by unhyepnhj 2024. 6. 28.

컨테이너와 배치 개념

- 컨테이너에 부착되는 컴포넌트들의 위치와 크기는 컨테이너 내부에 있는 배치관리자(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