2014년 1월 16일 목요일

SWT - FillLayout




필 레이아웃(FillLayout)


필 레이아웃은 책을 쌓아 올리는 것과 유사한 방법의 레이아웃이며, 자식 컨트롤을 같은 간격으로 배치하여 Composite 내의 빈 공간을 채우는 간단한 레이아웃입니다.

Composite의 setLayout() 메서드는 자식 컨트롤을 배열하려고 하는 Composite와 레이아웃을 연결하는데 사용합니다.

FillLayout의 생성자는 매개 변수 없이 호출하거나 하나의 스타일 매개 변수와 함께 호출할 수 있습니다. 디폴트 생성자는 SWT.HORIZONTAL 스타일을 사용하며, 스타일 매개 변수는 2종류로 나뉘어 집니다.


  • SWT.HORIZONTAL : 왼쪽에서 오른쪽으로 배열합니다. 가로 정렬
  • SWT.VERTICAL : 위에서 아래로 배열합니다. 세로 정렬




▶ 예제코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.swtjface.Ch6;
 
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
 
public class Ch6FillLayoutComposite extends Composite {
 
  public Ch6FillLayoutComposite(Composite parent) {
  super(parent, SWT.NONE);
 
//  FillLayout layout = new FillLayout(SWT.VERTICAL);
  FillLayout layout = new FillLayout(SWT.HORIZONTAL);
  setLayout(layout);
  for (int i = 0; i < 8; ++i) {
   Button button = new Button(this, SWT.NONE);
   button.setText("Sample Text");
  }
 }
}




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.swtjface.Ch6;
 
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
 
public class FillLayoutTest extends ApplicationWindow {
 public FillLayoutTest() {
  super(null);
 }
 
  protected Control createContents(Composite parent) {
  Ch6FillLayoutComposite flc = new Ch6FillLayoutComposite(parent);
 
   getShell().setText("Widget Window");
  return parent;
 }
 
  public static void main(String[] args) {
  FillLayoutTest tc = new FillLayoutTest();
  tc.setBlockOnOpen(true);
  tc.open();
  Display.getCurrent().dispose();
 }
 
}



▶ 실행결과


SWT.VERTICAL 의 경우



SWT.HORIZONTAL 의 경우





댓글 없음:

댓글 쓰기