eclipse swt의 RowLayout 알아보기

 

남들은 겨울엔 한가하다던데..

저는 이번 겨울에 주말까지 활용하면서 바쁘게 지내고 있습니다.

 

원래 swt 연재를 꾸준히 해보려고 했는데, 다른 일에 쫓기다보니 강좌 쓰기가 쉽지가 않습니다. ;ㅁ;

 

그래도 보시는 분들이 간단한 UI 화면을 만들수 있을때까지 어느정도까지는 강좌를 이어가야할 거 같습니다.

 

 

너무 오랜만이라 orz 저도 어디서부터 써야할지 @.@... orz...

 

일단 몇가지 layout에 대해서 좀더 글을 써보도록 하겠습니다.

 

 

1. 기본 소스

 

최대한 지난 강좌를 활용하면서... 잊어 버리신 부분은 검색을 활용해보면서(무책임...ㅇ>-<)

먼저 아래와 같이 소스를 작성하도록 합니다.

 

public static void main(String[] args) {
        Display display = new Display();
 
        Shell shell = new Shell(display);
        shell.setBounds(0, 0, 400, 300);
        shell.setLayout(new FillLayout());
        shell.setText("Test");
 
       // 이 부분에 내용이 들어갈거예요!!
 
        shell.open();
 
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
        display.dispose();
}

 

위와 같이 소스를 만들면 아무 내용이 없는 창이 뜰겁니다.

 

 

 

2. RowLayout 란?

 

이번엔 RowLayout 에 대해서 살펴볼겁니다.

 

Row 는 우리가 알고 있는 '열'을 나타냅니다.

열의 반대인 '행'은 Column입니다. (이러면 행열을 떠올릴 수 있으실 겁니다.)

 

RowLayout 은 세로로 나열한다라고 생각하시면 됩니다.

그럼 반대로 가로로 나열한다면 ColumnLayout(?)을 쓸까요?

 

답은 아닙니다. 똑같이 RowLayout을 쓰면서 옵션을 지정해줄수 있습니다.

 

그러므로 RowLayout는 한방향으로 객체들을 나열하는 것이라고 생각하면 됩니다.

 

사용 방법은 아래와 같습니다.

 

   세로로 나열하려면 Vertical

RowLayout layout = new RowLayout(SWT.VERTICAL);

 

  가로로 나열하려면 Horizontal

RowLayout layout = new RowLayout(SWT.HORIZONTAL);

 

 

3. Rowlayout 예제

 

Rowlayout을 쓰다가 한영키를 한글에 놓고 썼더니.. Rowla = '깨짐' 으로 나와서 순간 당황했네요.. ㅇ>-<

 

RowLayout을 사용하기 위해 아래와 같이 작성해봅니다.

 

소스를 작성하기 전에 설명을 하면... (그림 참고)

 

먼저 RowLayout을 생성합니다. 세로로 정렬할 것이기 때문에 Vertical 속성으로 정해줍니다.

 

그 다음 밑바탕이 되는 Composite를 생성해줍니다.

(우리가 만들 버튼들이 Composite 안으로 들어가서 생성이 될 것입니다.)

 

그 다음 버튼을 4개를 만들도록 하겠습니다.

 

 

그림과 같이 정하고 구현한 것이 아래 소스 입니다.

 

public static void main(String[] args) {
        Display display = new Display();
 
        Shell shell = new Shell(display);
        shell.setBounds(0, 0, 400, 300);
        shell.setLayout(new FillLayout());
        shell.setText("Test");
 
        RowLayout layout = new RowLayout(SWT.VERTICAL);

        Composite comp = new Composite(shell, SWT.NONE);
        comp.setLayout(layout);
        
        Button button;
        
        for (int i = 0; i < 4; i++) {
            button = new Button(comp, SWT.PUSH);
            button.setText("button " + i); 
        }

 
        shell.open();
 
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
        display.dispose();
}

 

실행을 하면 아래와 같이 만들어집니다.

 

 

 

반대로 가로로 지정하고 싶다면 아래와 같이 변경하고 테스트를 해봅니다.

 

RowLayout layout = new RowLayout(SWT.HORIZONTAL);

 

 

 

다음 강좌에는..

 

Layout 에 대한 속성을 조금 더 살펴본 후에, 계산기를 만들어보고 그 다음 테이블 사용 방법등 넘어갈 볼 생각입니다. ^^

 

권한

 

강좌에 대한 내용은 에프에이리눅스(주) 에 권한이 있습니다.
본문의 이미지 및 내용은 순수 제작한 것이며, 내용 중 외부 이미지를 사용할 경우, 출처를 표기합니다.
무분별한 불펌 보다는 포럼을 홍보해주셔서 더욱 더 활성화되어 좋은 내용의 글이 올라오도록 부탁드립니다.