米持幸?(2005/11/17)
출처 : http://www.atmarkit.co.jp/fjava/rensai3/yonemochi02/yonemochi02.html


 SWT ()란 무엇인가

 SWT, Eclipse의 가장 중심적인 윈도우·툴 킷입니다.
윈도우·시스템은 보통, 단순하게 윈도우를 관리·표시할 만한 기능을 제공합니다. 다만, 그 만큼이라면 윈도우는 「뒤로 숨어 있는 윈도우를 클릭하면 앞에 나온다」라고 하는 기본 동작을 해 주지 않습니다. 윈도우·어플리케이션은, 그렇게 말한 처리를 마우스 이벤트 처리등을 적절히 실시하는 것으로 개별적으로 실시하지 않으면 안되지 않고, 모든 윈도우의 출력은, 일일이 그래픽API를 이용하지 않으면 안됩니다.
 거기서, 윈도우·시스템에는 모든 윈도우에 공통의 기능을 애드 온(add-on) 해 추가하고 있습니다. 예를 들면, 윈도우의 테두리를 드래그해서 크기를 바꾸거나 타이틀 바를 드래그 해 이동하거나 하는 기능입니다. 이러한 기능을 제공하는 윈도우·시스템의 요소를 「윈도우·매니저」라고 합니다. Windows 의 경우는Windows 자신이 윈도우·매니저의 역할을 합니다. OS/2 의 경우는PM (프레젠테이션·매니저)입니다. Linux 의 경우는 매우 많은 윈도우·매니저가 있어, 제공하고 있는 디스트리뷰터에 따라서 다릅니다만, MotifGNOME등이 있습니다.

 게다가 윈도우·시스템 전체로 공통에 사용할 수 있는, 일반적인 동작을 하는 윈도우의 종류(윈도우 클래스라고 합니다)를 미리 준비하고, 재이용할 수 있도록 하고 있습니다. 이 윈도우 클래스세트를, 일반적으로 「윈도우·툴 킷」이라고 합니다. 일반적으로, 프레임 윈도우, 다이얼로그 박스, 텍스트 필드, 버튼, 리스트나 테이블, 트리 표시등의 부품이 준비되어 있습니다.

 이러한 윈도우는, 유저·인터페이스(UI)를 주관하는 소프트웨어 부품이라고 생각할 수 있는 것부터, UI 컴퍼넌트라고 부릅니다.

 Win32이나OS/2 PM-API 등이 같은 네이티브의API 에는, 미리 제공된 윈도우·툴 킷이 있습니다. Linux 등에 채용되고 있는X Window 등에서는, X11R6 라이브러리나, Motif 위젯 같은 툴 킷이 있습니다.

 Java 에는 다음의2 개의 윈도우·툴 킷이 미리 준비되어 있습니다.

그림1  AWT의 컴퍼넌트
Java 그럼, 코어의 라이브러리에 Abstract Window Toolkit (이하AWT )이 준비되어 있습니다. java.awt 라이브러리에 포함되어 있습니다.
AWT
, 매우 심플한API로 사용하는 것은 간단합니다만, 기능이 떨어지고, GUI성능도 낮고, 외형도 좋지 않는 등, 너무 고도의 윈도우·시스템에는 권하지 않습니다.

 

그림2  Swing의 컴퍼넌트
Java2으로부터 Swing라이브러리라고 하는 툴 킷이 추가되었습니다. 라이브러리는javax.swing 입니다. Swing에는 AWT에는 없었던 라디오 버튼, 패스워드 필드, 슬라이더, combobox, 트리, 테이블, progress bar라고 하는 컴퍼넌트가 추가되어서, 고수준의 윈도우·어플리케이션을 만들 수 있게 되었습니다.

 Java 의 윈도우·툴 킷으로서 표준으로 제공되고 있는AWTSwing 은 공통적인 단점이 있습니다. 그것은, 두 윈도우·툴 킷 모두 PureJava (모든 윈도우 처리를Java에서 처리)라고 하는 설계 때문에 무겁고, 출력을 모두Java위에서 처리하므로 외형이 좋지 않은 것입니다.

그림3 SWT의 부품

그림4 SWT의 컨테이너

 SWT, Eclipse의 베이스가 된 Eclipse 독자적인 윈도우·툴킷입니다. 기능은, WindowsX-Window의 공통 부분을 뽑아낸 것 같은 것이 되고 있습니다. 이 툴 킷의 특징은, PureJava가 아니고, 네이티브API를 사용하는 것에 있습니다. 예를 들면,Windows 위에서SWT를 사용하는 경우, Win32 에 존재하는 컴퍼넌트는 Win32 API에 의해서 동작합니다. Linux에서 동작하는 경우, X-Window(실제로는 GTK)에 존재하는 컴퍼넌트는GTK 에 의해서 동작합니다. 만약 네이티브API 에 존재하지 않는 윈도우 컴퍼넌트 (예를 들면, Linux 위에서의 트리 표시), PureJava에 의존합니다.

 이러한 구조를 하고 있기 때문에, SWT의 윈도우 컴퍼넌트는 네이티브API 그 자체이므로, 매우 성능이 좋고, 외형도 예쁩니다. Eclipse 의 성공에는, SWT의 존재를 부정할 수 없겠지요.
 Eclipse가 발표되고 나서, SWTJava의 데스크탑 어플리케이션에 사용하고 싶다고 하는 요구가 높아져, Eclipse의 최저한의 실행 환경만을 분리한Eclipse RCP(리치·클라이언트·플랫폼)이 나왔습니다. 이것은, 리치 클라이언트 어플리케이션을 만들기 위해서 이용할 수 있는 Eclipse의 런타임입니다.

Eclipse SDK ()VE 의 인스톨
 이 기사의 작성 시점에서는 VE의 버전은 v1.1.01이고, 이것을 기초로 사용법을 설명합니다. 이전의 VE에 비하면, 꽤 사용하기 쉽게 되어 있습니다. v1.1.01 Eclipse 3.1을 전제로 설명합니다.
 
 Eclipse의 셋업은, 연재:Eclipse3.1 사용하자 」를 참조해 주세요.
 
 VE의 최신의 빌드는, Eclipse VE 의 사이트로부터 입수 가능합니다.

 VE를 동작시키려면, 동시에 몇개의 플러그 인을 인스톨 할 필요가 있습니다. VE의 빌드 버전에 의해서 요구되는 버전이 다르기 때문에, 조심해 주세요.

 EMF (Eclipse Modeling Framework), Eclipse위에서 다양한 편집기를 만들 때, 편집자상의 모델 정보를 공유하기 위한 강력한 체제입니다. VE 비주얼 편집기와 원시 코드 편집자와의 사이에 화면의 설계 정보를 공유하기 위해서 이용하고 있습니다.

 GEF (Graphical Editing Framework), Eclipse 위에서 그래피컬 편집기를 만들기 위한 체제입니다. 편집기상에서 드래그&드롭 가능한 컴포넌트를 표시해, 선으로 결합하는 툴을 만드는데 필요합니다.

  1. JVM Eclipse 의 모듈을 다운로드합니다
  2. Java는 각각의 인스톨 순서에 따라서 인스톨 해 주세요
  3. 다운로드한 각ZIP 파일을 적당한 디렉토리에 압축을 해제 합니다.
    각 폴더 안에는plugin 폴더와features 폴더가 있습니다. 이 각각의 폴더의 내용을, Eclipse 본체가 인스톨 된 장소의 같은 이름의 폴더 아래에 카피합니다
  4. eclipse 폴더의「eclipse.exe (Windows 의 경우)를 실행하면, Eclipse 의 워크벤치가 기동합니다

 또한VEIBM Rational Application Developer(RAD)등의 일부의 벤더 제품에는 미리 인스톨 되고 있습니다.

이번은 여기까지입니다. 다음 회에는VE를 사용해SWT 의 패널을 작성합니다.


+ Recent posts