SWT/JFACE 개발환경 구축하기




이클립스로 UI 쪽을 개발하다보면, 너무나 많은 장벽에 부딛힙니다.
swing 과 awt 로는 아직 한계가 많다라는 것이죠.

개인적으로 이번 프로젝트에서 시스템 트레이에서 동작하는 Agent 를 개발할 필요가 있었습니다.
오른쪽 마우스로 띄운 Context-Menu 에 아이콘도 넣어야 하고, 때로는 프로그레스바도 넣어야 했습니다.

처음에는 TrayIcon(awt 입니다)를 만들어서 트레이에 넣어서 만들려고 했습니다.
그런데 setPopupMenu(PopupMenu popup) 라는 이 녀석이 문제였습니다.

PopupMenu 는 awt 인 Menu(awt) 만 입력할 수 있습니다.
Menu 는 답답하게도 '텍스트' 만 넣을 수 있지요.

즉 아이콘을 넣을 수가 없는겁니다!!

그래서 인터넷에 찾아보니 꼼수로. JPopupMenu(swing 입니다)를 사용하는 편법이 있더군요.
이녀석을 사용하면 JMenu(swing)을 사용할 수 있거든요.
그런데 문제가 많습니다.
바탕화면이나 다른 창을 클릭해도 팝업이 자동으로 사라지지 않습니다. =_= 매우 치명적이죠.


결국.. 방법은 swt 를 사용하는 수 밖에는 없습니다.(현재로는요~)



swt/jface 는 기본적으로 sdk 에 포함된 라이브러리가 아닙니다.
패키지명에서도 알 수 있듯이, eclipse 에서 별도로 만든 plugin 이죠.
그래서 몇몇 귀찮은 설정을 해 주어야 합니다.

이를 정리하고자 합니다.



Reference 추가하기

1. 일단 java 프로젝트를 만듦
2. 프로젝트 우클릭 -> Properties 메뉴 클릭
3. 아래 화면의 메뉴로 접근

4. 우측 메뉴의 'Add Variable...' 클릭
5. 하단 'Configure Variables...' 클릭
6. 'New' 클릭
7. 하단의 창이 뜨면, 'Folder...' 클릭

8. Name은 임의값(예: ECLIPSE_HOME)을, path 에는 이클립스가 설치된 폴더(C:/Program Files/eclipse)를 입력
9. OK 를 눌러서 아래 화면으로 빠져나옴

10. 방금 추가한 'ECLIPSE_HOME' 을 클릭하고, 오른쪽에 활성화된 'Extend...' 버튼을 클릭
11. 항목에서 'plugins' 의 트리를 확장시킴

12. 리스트가 나오면 아래 7개의 jar 파일을 추가시킴(뒤에 버젼은 신경쓰지 말것)

 




이렇게 하면 swt/jface 사용을 위한 환경설정이 모두 끝이 납니다.
프로젝트를 열어보면, "Referenced Libraries" 에 위 7개 항목이 들어간 것을 확인 하실 수 있습니다.