|
컨테이너 자체만으로는 특별한 동작을 할 수 없고 다른 컴포넌트를 포함할 때만 의미가 있음
컨테이너도 컴포넌트 클래스의 하위 클래스 이므로 하나의 컴포넌트로 취급되며 다른 컨테이너에 부착할 수 없음
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import java.awt.*; class FrameTest { private Panel p1 = new Panel(); private Panel p2 = new Panel(); public FrameTest() { p1.setBackground(new Color(255,111,111)); p2.setBackground(new Color(111,255,111)); this.setLayout(new GridLayout(1,2)); this.add(p1); this.add(p2); } public static void main(String[] args) { Frame f = new FrameTest(); f.setTitle("Panel연습"); f.setSize(200,100); f.setVisible(true); } } |
12줄은 배치방법을 나타내는 소스입니다. 아래에서 더 알아보겠습니다.
|
레이아웃 해제 방법
레이아웃이 자동적으로 설정되어 .setSize가 안먹힐때가 있다.
이럴때는 '.setLayout(null)' 을 사용하면 레이아웃을 해제할 수 있다.
팁하나 더 주자면 컴포넌트 배치는 .setBound() 메소드로 하면 된다.
FlowLayout
컴포넌트를 컨테이너의 왼쪽부터 차례대로 하나씩 오른쪽 방향으로 채워가고 오른쪽 끝에 다다르면 다음줄로 넘어갑니다.
프레임 이름.setLayout(new FlowLayout(1,2));
f.add(new Button("1"));
f.add(new Button("2"));
f.add(new Button("3"));
BorderLayout
Frame, Dialog와 같은 윈도우 클래스를 위한 기본적 레이아웃으로 각 영역을 아래 그림처럼 5개 영역으로 구분한 다음 지정된 자리에 컴포넌트를 배치합니다.
프레임 이름.setLayout(new BorderLayout(1,2)); //생략하고 아래만 써도 됨.
f.add("North",new Button("위"));
f.add("West",new Button("왼쪽"));
f.add("Center",new Button("가운데"));
f.add("East",new Button("오른쪽"));
f.add("South",new Button("아래"));
GridLayout
행과 열의 수를 지정하여 균등한 크기의 행, 열에 컴포넌트를 배치한다.
프레임 이름.setLayout(new FlowLayout(3,2));
f.add(new Button("1"));
f.add(new Button("2"));
f.add(new Button("3"));
f.add(new Button("4"));
f.add(new Button("5"));
f.add(new Button("6"));
'컴퓨터프로그래밍 > JAVA' 카테고리의 다른 글
Java_이벤트_adapter (0) | 2016.06.01 |
---|---|
JAVA-AWT이벤트처리 (0) | 2016.05.24 |
AWT 컴포넌트의 활용 (0) | 2016.05.20 |
JAVA - AWT 컴포넌트의 이해 (0) | 2016.05.14 |
JD-Eclips 다운 및 설치 (0) | 2016.05.11 |