자바에서 사용되는 그래픽 유저 인터페이스(GUI)툴중 대표적인 종류는 3가지이다.
AWT SWING SWT/JFACE
각각 마다 동작하는 방식이 다르기 때문에 장단점이 다르다.
서로의 특징을 알아보자
1. AWT
- Abstract Windows Toolkit (AWT)는 오리지널 자바의 GUI툴킷
- 자바의 런타임의 일부로 안정되고, 추가 설치가 필요 없음
- 대개의 경우 리소스관리를 프레임워크에서 처리
- UI 쓰레드를 신경쓰지 않아도 됨 (그러나 성능의 문제가 됨)
- 콘테이너 없이 콤포넌트 생성 및 콘테이너 변경 가능
- 풍부한 그래픽 환경 제공
- 각 OS별 최소한의 공통 기능의 wrapper를 구현함으로써 제한적 기능을 제공
- 일반적으로 사용되는 테이블, 트리, 진행 바 같은 것은 애플리케이션 레이어에서 구현해야 함
- "한번 작성하여, 어디에서나 실행되는(WORE)"라기보다 "한번 작성하여, 어디에서나 테스트 하는(WOTE)" 환경이 됨
2. Swing
- 각 OS의 콤포넌트에 대한 의존성을 최소화 (AWT의 단점을 보완)
- 대부분의 콤포넌트는 자바로 구현해 모든 OS에 같은 look & feel로 실행 가능함 (WORE)
- 자바로 구현한 콤포넌트는 각 OS의 원래 콤포넌트보다 느려질 수 있음
- 모델, 뷰, 컨트롤의 분리
- Look & Feel을 컨트롤 할 수 있음
- AWT와 마찬가지로 프레임워크에서 리소스가 관리되며 컨테이너의 전제조건이 없음
- UI 쓰레드가 있으므로, UI 변경은 이 쓰레드에서 이뤄져야 함
- 자바의 일부로 별도의 설치가 필요 없음
3. SWT/JFace
- Standard Widget Toolkit (SWT)는 AWT에 비교되는 콤포넌트 라이브러리
- JFace는 SWT를 기반으로 하는 상위레이어 UI 라이브러리
- SWT는 각 OS의 콤포넌트에 기반하고, 좀더 많은 콤포넌트를 수용함 (OS에서 콤포넌트가 지원되지 않는 경우 자바로 구현함)
- OS에 따른 콤포넌트의 기능, look & feel과 성능을 지원함 (WOTE)
- ContentProvider 등을 통한 MVC 지원
- 애플리케이션이 리소스 관리해야 함 (disposal)
- 콤포넌트는 부모 컨테이너를 지정해 생성해야 하고 변경할 수 없음
- UI는 UI 쓰레드에서 변경되어야 함
- 그래픽 기능이 자바에 비해 약함
- 자바이외에 별도의 라이브러리 설치 및 환경설정 (classpath 및 jni library path)이 필요
'RCP > SWT & JFACE' 카테고리의 다른 글
Eclipse GEF 개념 설명 (0) | 2016.12.24 |
---|---|
JFace Dialog에서 레이아웃 설정으로 버튼 바 숨기기 (0) | 2016.12.24 |
eclipse 범용 UI JFace 소개 (0) | 2016.12.23 |
RCP프레임워크 재료인 SWT 소개와 단점 (0) | 2016.12.23 |
RCP 프레임워크의 Extension and Extension Points (0) | 2016.12.23 |