2013년 12월 16일 월요일

SWT 기본 HelloSWT 실행하기




SWT 기본 HelloSWT 실행하기


  Java를 처음 배우면 Hello World를 실행해보면서 프로그래밍을 시작하는 것처럼, SWT를 공부하면서 HelloSWT를 실행해보려 합니다.



1. HelloSWT 클래스 생성


com.swtjface.ch2 패키지를 만들고, 그 안에 HelloSWT 클래스를 생성합니다.








2. 코드 작성 및 실행

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
28
29
30
31
package com.swtjface.ch2;
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
/**
 * HelloSWT 실행 
 * @author cremazer
 */
public class HelloSWT {
 public static void main(String[] args) {
  //할당과 초기화
  Display display = new Display();
  Shell shell = new Shell(display);
  
  //쉘에 위젯 추가하기
  Text txtHello = new Text(shell, SWT.CENTER);
  txtHello.setText("Hello SWT");
  txtHello.pack();
  
  //GUI 작동
  shell.pack();
  shell.open();
  while(!shell.isDisposed()){
   if(!display.readAndDispatch()){
    display.sleep();    
   }
  }
  display.dispose();
 }
}



▶ 실행결과




○ 할당과 초기화

  Display 와 Shell 클래스의 인스턴스를 생성하여, GUI가 기본 플랫폼 자원에 접근 할 수 있도록 하고, 위젯을 보여주는 기본 윈도우를 만들 수 있습니다.



○ 쉘에 위젯 추가하기

  Text 위젯을 Shell에 추가합니다. 여기에서 GUI기능을 제공하는 데 필요한 블록들을 추가하고 설정합니다. 컨테이너 내에서 위젯과 위젯들의 묶음은 Shell의 하위 요소로 추가됩니다. pack() 메소드는 Shell과 Text 구성요소가 필요로 하는 만큼만 공간을 사용합니다.



○ GUI 작동

  이부분은 GUI의 동작을 표현합니다. Shell의 open() 메소드를 호출해야, 응용프로그램의 주요 윈도우와 그 하위 요소들이 나타납니다. Shell이 열린상태로 있는 동안 Display 객체는 readAndDispatch() 메소드를 이용하여 플랫폼의 이벤트 대기열에 있는 사용자 이벤트를 추가합니다. 이러한 사용자 이벤트 중 하나가 윈도우를 닫는 작업이면, Display 객체(Shell과 Shell의 하위 구성 요소)와 관련된 자원 할당을 해제합니다.




참고서적 : SWT/JFace in Action




댓글 없음:

댓글 쓰기