IT/자바

awt, 레이아웃 매니저 BorderLayout, FlowLayout, GridLayout

Beautifulkim 2018. 5. 16. 10:42

출처 - https://blog.naver.com/sorkan12/220462450935


1. AWT

  - GUI를 위한 도구

  - JAVA로 구현하지 않고 OS의 컴포넌트를 사용


2. Swing

  - AWT를 확장한 GUI 프로그래밍 도구

  - OS의 컴포넌트를 사용하지 않고, 순수 JAVA로 구현



AWT는 OS의 컴포넌트를 사용하기에 종속적다. 그래서 한계가 있다.

Swing은 JAVA로 만들었기에 100%컨트롤이 가능하지만 기능이 많아 어렵다.


AWT - Frame - Layout 구성

Swing - JFrame - Container - Layout 구성



--------------------------------------------------------------

AWT 레이아웃


1. BorderLayout

  - 5개 영역으로 분할, 각 영역당 하나의 컴포넌트

  - 한 영역에 여러 컴포넌트를 넣으려면 Panel 사용

  - 디폴트



생성자

BorderLayout(int hgap, int vgap) 

  - hgap : 좌우 영역 사이 간격

  - vgap : 위아래 영역 사이의 간격

BorderLayout() - 영역 사이에 간격이 없는 BorderLayout


메소드

add(위치, 컴포넌트) ex) add("North", "abcd");



2. FlowLayout

  - 컴포넌트를 왼쪽에서 오른쪽으로 배치

  - 3가지 정렬방식 가능(왼쪽, 가운데, 오른쪽)



생성자

FlowLayout(int align, int hgap, int vgap)

  - align : 컴포넌트 정렬 방법 FlowLayout.LEFT / FlowLayout.CENTER / FlowLayout.RIGHT

  - hgap : 좌우 영역 사이 간격

  - vgap : 위아래 영역 사이의 간격


FlowLayout(int align) - hgap과 vgap이 5인 FlowLayout

FlowLayout() - 가운데 정렬이면서 hgap과 vgap이 5인 FlowLayout




3. GridLayout

  - 컴포넌트를 왼쪽에서 오른쪽으로 배치

  - 3가지 정렬방식 가능(왼쪽, 가운데, 오른쪽)



생성자

GridLayout(int row, int col, int hgap, int vgap) 

  - row : 행 구분

  - col : 열 구분

  - hgap : 좌우 영역 사이 간격

  - vgap : 위아래 영역 사이의 간격


GridLayout(int row, int col)

  - row : 행 구분

  - col : 열 구분