강좌 & 팁
eclipse swt의 composite + GridLayout 알아보기
지난 강좌에 이어서 Composite 에 대해서 설명하도록 하겠습니다.
1. 지난 소스
먼저 지난주에 작성한 소스 내용입니다.
public static void main(String[] args) {
지난 주에 Composite 가 shell 위에서 shell 와 같은 영역을 가질 수 있는 것을 보여 주었습니다. 이제 shell에서 직접 수정하지 않고 Composite 의 영역을 나누는 방법을 설명하도록 하겠습니다.
2. GridLayout 위의 소스 내용 중 Composite 부분을 살펴봅니다.
Composite comp = new Composite(shell, SWT.NONE);
comp.setLayout(new FillLayout()); 라는 내용을 살펴 봅니다.
composite 의 레이아웃을 잡는데 FillLayout을 사용합니다. Fill 은 말 그대로 가득 채운다는 뜻입니다.
그래서 위의 소스대로 버튼을 만들었을 때, 아래 그림과 같이 쉘 영역에 가득차게 나타납니다.
버튼의 크기를 지정하지 않았는데도 Composite에서 지정한 대로 안에 존재하는 객체들이 전부 가득 채워졌습니다. 알아서 채워준다고 하니 편리한거 같지만, 내 입맛에 맞는대로 만들려면 Fill 보다는 다른 것을 사용하는게 좋을거 같습니다.
그래서 자주 사용되는 것이 GridLayout 입니다. GridLayout은 객체의 setLayout 속성 안에 들어가게 됩니다. 설명을 보면 아래와 같이 되어 있습니다.
org.eclipse.swt.layout.GridLayout.GridLayout(int
numColumns, boolean makeColumnsEqualWidth)
@.@ 영어 울렁증이 있으시다면, 재빨리 아래를 봅니다.
new GridLayout(numColumns, makeColumnsEqualWidth);
예를 들어서 소스 내용을 아래와 같이 바꾼다면, 1행으로 나뉘고 컬럼의 폭은 동일하지 않게 합니다.
comp.setLayout(new GridLayout(1, false));
위의 소스에서 컬럼의 수를 1개를 주었을 때, 같은 행에서 1개밖에 배치가 안되므로 다음 객체는 자동적으로 아래에 배치됩니다.
컬럼의 수를 2개로 변경해보도록 하겠습니다.
comp.setLayout(new GridLayout(2, false));
컬럼의 수를 2개를 주었을 때, 같은 행에서 2개 배치되므로 버튼2는 버튼1 옆에 생성이 되었습니다..
만약에 버튼을 6개 만들었고, 컬럼 수를 3개로 나눈다면 어떻게 보일까요?!
다음 강좌에는..
Composite를 영역을 분할하는 GridLayout 에 대해서 설명을 하였습니다. 요즘과 같이 유연한 환경(다양한 해상도)를 소화하긴 힘듭니다.
다음 강좌엔 GridData를 통해서 객체의 크기를 조절해보도록 하겠습니다.
권한 강좌에 대한 내용은 에프에이리눅스(주) 에 권한이 있습니다. |