AWT>레이아웃 관리자

C/Java : 2007. 12. 1. 11:31

- 자바는 컴포넌트 크기와 레이아웃을 만들기 위해 프로그래머가 메소드를 호출하는 것 대신에 레이아웃 관리자를 제공한다.

- 레이아웃 관리자는 각 객체가 화면에 출력될 위치에 관여할수 있지만 정확한 좌표를 지정할수는 없다.
└ 브라우저에 기반한 GUI를 구성하기 때문에
└ GUI가 인터넷으로 전송되고 브라우저에서 실행된다면
    화면 해상도, 크기 또는 그것을 실행할 브라우저의 종류에 구애받지 않는다.
└ 메소드 호출과 switch문으로 처리하기 어려우므로 간단하게 하기 위해
    (자바 디자이너들은) 레이아웃관리자를 제공하여
    (관리자 하나, 혹은 조합으로) 사용자가 원하는 모양을 만들수 있도록 지원한다.

- java.awt패키지에 의해 제공되는 레이아웃 관리자는 스윙에서도 사용할 수 있다.
└ 스윙 애플리케이션은 모든 레이아웃 관리자를 사용할 수 있다.



1. BorderLayout

Panel객체를 생성하고 거기에 GUI객체를 추가한다.
레이아웃 방법에 따라 일정한 영역에 패널을 위치시킨다.
패널은 한 개의 영역에서 시작하여 다른 영역에서 끝나도록 다른 색으로 지정할 수 있다.
BorderLayout클래스는 각 영역의 크기를 자체적으로 정한다.
사용자는 간접적인 영향만 미친다.


2. FlowLayout

- 레이아웃 관리자중 가장 간단하다.
- 컴포넌트가 프레임에 놓일때 왼쪽을 기준으로 위치한다.
- 컴포넌트는 계속 이어지면서 위치하게 되고 해당 행에 출력되지 못하면 새로운 행을 만들어 출력한다.


3. GridBagLayout

- 가장 강력하지만 레이아웃 관리자를 구현하는데 가장 복잡하다.
- 다른 행과 열에 항목을 위치시키는 스프레드시트 프로그램처럼 동작하고
   또 다르게 셀의 크기를 다르게 지정할수 있다.
- 레이아웃 관리자의 복잡함을 처리하기 위한 클래스 GridBagConstraints를 호출한다.
└ 프로그래머가 좌표, 범위, 스페이싱, 패딩을 지정할수 있게 해준다.

- 프레임에 놓인 모든 객체는 강제적으로 지정할 필요가 있다.

gridx : 열 위치
gridy : 행 위치
gridwidth : 셀 폭
gridheigth : 셀 높이
weightx : 여분 행 공간 할당
weighty : 여분 열 공간 할당
anchor : 셀에 컴포넌트를 정렬하는 방법 지정
fill : 컴포넌트를 채우는 방법 지정
insets : 컴포넌트와 셀의 가장자리 사이의 여백 지정
ipadx : x 방향의 여백 지정
ipady : y 방향의 여백 지정

  gbc = new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,
                                            GridBagConstraints.EAST,
                                            GridBagConstraints.NONE,
                                            i, 0, 0);

  gbl.setConstraints(answerLabel, gbc);


- 이 클래스는 레이아웃을 보다 정밀하게 제어하여 셀에 객체를 위치시킬수 있다.

- 어떤 이유로 높은 행과 열 번호를 지정해도 결과에서 행, 열에 공백이 없다.
└ 만약 행, 열이 비어있다면 레이아웃 관리자에 의해 무시된다.


 

Posted by 청웨일