자바 스윙~

이한길의 이미지

시원한 스윙이군요...
예전부터 자바 무척 좋아했는데 요즘 다시 손대기 시작하고 느낀건...
스윙~이 잘 설계되었는 거지요...

예전에 SWT의 속도가 맘에 들어서 열심히 파려던 적이 있는데...
SWING에 익숙한지라 조금 실망도 했던 기억이...

아무튼 자바로 GUI할라면 SWING이 최고라는 생각이 듭니다..
멋지 스윙~

File attachments: 
첨부파일 크기
Image icon kthard.jpg270.54 KB
fender의 이미지

스윙... 설계는 예술이고 구현은 쥐약이지요 :)

맥에서야 스윙이 최고지만, 요즘엔 윈도우즈에선 그래도 쓸만 합니다. 문제는 리눅스인데... 솔직히 엔드 유저보고 "이 프로그램을 사용하려면 먼저 JRE를 다운 받아 깐 다음에 원하는 글꼴을 jre/lib/fonts에 복사해 넣고 KLDP에서 자바 한글 설정법에 대한 게시물을 찾아서 그대로 따라 하시면 한글이 잘 보일 겁니다" 라고 말하진 못하겠더군요 -_-;

최근 레드햇에서 Classpath를 도와 Gtk2 기반의 스윙을 개발하는 것 같긴 합니다. 어쨌든 그 전까지는 리눅스에서 스윙은 viable solution은 아니라고 봅니다. SWT도 윈도우즈에 최적화 되어 있긴 하지만 그래도 GCJ로 네이티브 컴파일해서 JRE의존성 없이 deb이나 rpm으로 배포하는 가능성까지 고려한다면 아직까지는 SWT가 리눅스용 자바 데스크탑 어플리케이션을 만드는데는 최선의 선택이 아닌가 합니다.

최근 회사에서 한 달짜리 스윙 프로젝을 하고 있는데... 죽겠네요 -_-;; 왜 이렇게 기본적인게 안되는지... 특히 윈도우즈 탐색기 처럼 드래그 앤 드랍 구현하려면 죽음입니다 -_-. 하지만 UI 자체의 유연함은 최강이 아닌가 싶네요... 디자이너가 거의 HTML 테이블 배경그림 깔듯이 디자인을 해놨는데 SWT라면 도저히 구현하기 어려웠을 디자인인데 그나마 스윙이라 살았습니다.

아래는 지금 개발 중인 UI 스샷입니다 (자랑과 뽀대에 약한 fender라는... =3):

댓글 첨부 파일: 
첨부파일 크기
Image icon 0바이트

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

offree의 이미지

스윙 !!

몇년전에 잠깐 써본일이 있긴한데..

요즘은 어떤지 모르겠네요..

어떤 프로젝트에 사용하시는지요?(개인적인용도?)

간단한 클라이언트용 프로젝트에 쓰일 것을 찾아보고 있는데.

델파이, VB , 등등.. 스윙은 어떤지요?

아직 최종결정은 못 내렸네요.. ^^

hangulee wrote:
시원한 스윙이군요...
예전부터 자바 무척 좋아했는데 요즘 다시 손대기 시작하고 느낀건...
스윙~이 잘 설계되었는 거지요...

예전에 SWT의 속도가 맘에 들어서 열심히 파려던 적이 있는데...
SWING에 익숙한지라 조금 실망도 했던 기억이...

아무튼 자바로 GUI할라면 SWING이 최고라는 생각이 듭니다..
멋지 스윙~

사용자가 바꾸어 나가자!!

= about me =
http://wiki.kldp.org/wiki.php/offree , DeVlog , google talk : offree at gmail.com

offree의 이미지

fender wrote:

아래는 지금 개발 중인 UI 스샷입니다 (자랑과 뽀대에 약한 fender라는... =3):

딱히 자바 애플리케이션이라는 느낌은 모르겠는데요..

프로그램을 써보고 싶은 욕구(?)가 생기네요..

해당 프로그램의 속도(?)면에서는 어떤지요?

클라이언트용 프로그램에 한번 고려를 해봐야 겠습니다.

사용자가 바꾸어 나가자!!

= about me =
http://wiki.kldp.org/wiki.php/offree , DeVlog , google talk : offree at gmail.com

fender의 이미지

offree wrote:
딱히 자바 애플리케이션이라는 느낌은 모르겠는데요..

프로그램을 써보고 싶은 욕구(?)가 생기네요..

해당 프로그램의 속도(?)면에서는 어떤지요?

클라이언트용 프로그램에 한번 고려를 해봐야 겠습니다.

속도는 만족할만 합니다. 문제는 배포 방식인데 저 프로그램의 주요 타겟이 맥 사용자들이라 그냥 웹스타트를 이용하면 문제가 없을 것 같습니다.

윈도우즈용 클라이언트의 경우 JRE를 번들하는 부담이 크더군요...

저 프로그램에서 스윙의 장점이 잘 드러난 경우는 HTML 디자인 처럼 그림을 많이 사용해 구성한 UI 구현입니다. 윈도우즈 버전의 경우 다른 팀에서 VB로 작업 중인데 레이아웃 관리자란 개념이 없기 때문에 하다 못해 패널의 배경 그림을 까는 것도 쉽지는 않습니다. 그림으로 된 툴바나 스플릿 패널 중간 손잡이 부분에 위젯을 끼워 넣는 등도 위젯을 자유롭게 확장할 수 있는 스윙과 같은 방식이 아니면 복잡해 집니다.

개인적으로 UI가 복잡하지 않고 2D 기능을 많이 쓰지 않는 클라이언트 프로그램이라면 스윙보다는 SWT/JFace가 더 적합한 선택이 아닌가 싶습니다.

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

kwon37xi의 이미지

fender wrote:

맥에서야 스윙이 최고지만, 요즘엔 윈도우즈에선 그래도 쓸만 합니다. 문제는 리눅스인데... 솔직히 엔드 유저보고 "이 프로그램을 사용하려면 먼저 JRE를 다운 받아 깐 다음에 원하는 글꼴을 jre/lib/fonts에 복사해 넣고 KLDP에서 자바 한글 설정법에 대한 게시물을 찾아서 그대로 따라 하시면 한글이 잘 보일 겁니다" 라고 말하진 못하겠더군요 -_-;

이것은 단지 리눅스 스윙만의 문제라고 보기는 그렇다고 생각합니다.
모든 리눅스 응용 프로그램의 문제지...
현재 페도라를 쓰면서도, "전혀 삽질없이" 원하는 글꼴로 된 한글 데스크탑 환경 구축은 안됩니다. 즉, 환경구축이 어렵지는 않지만 완전 초보에게는 그것도 귀찮고 어려운 작업입니다.

자바 스윙도 마찬가지가 아닐까 싶습니다. 자바 스윙으로 윈도우와 같은 굴림,바탕체 쓰는거 어렵지 않습니다. 파일 몇개 복사만 하면 됩니다.

이문제의 근복전인 해결책은 데스크탑용 지역화 배포판(한컴 리눅스 같은 것)이 대중화 되면 자연스레 해결되지 않을까요. 한컴 리눅스에 JRE를 기본 배포하고 예쁜 한글 글꼴 설정까지 미리되어 있다면...

말 그대로, 그냥 인스톨 애니웨같은 설치 프로그램만 던져줘도 스윙 어플리케이션을 미려한 글꼴을 즐기며 삽질없이 사용할 수 있게 되겠죠..

어서 범용 리눅스 데스크탑 시대가~~

fender의 이미지

kwon37xi wrote:
자바 스윙도 마찬가지가 아닐까 싶습니다. 자바 스윙으로 윈도우와 같은 굴림,바탕체 쓰는거 어렵지 않습니다. 파일 몇개 복사만 하면 됩니다.

이문제의 근복전인 해결책은 데스크탑용 지역화 배포판(한컴 리눅스 같은 것)이 대중화 되면 자연스레 해결되지 않을까요. 한컴 리눅스에 JRE를 기본 배포하고 예쁜 한글 글꼴 설정까지 미리되어 있다면...

말 그대로, 그냥 인스톨 애니웨같은 설치 프로그램만 던져줘도 스윙 어플리케이션을 미려한 글꼴을 즐기며 삽질없이 사용할 수 있게 되겠죠..

음... 보기에 따라 그럴 수도 있지만 예를들어 Gtk2기반인 SWT에 비해 단점이 많습니다. 일단 데스크탑 어플리케이션은 운영체제의 데스크탑 환경에 통합되어야 합니다. 하다 못 해 단축키나 포커스 움직임은 물론 글꼴이나 색상 선택도 가능하면 데스크탑의 테마를 따라가야 한다고 생각합니다.

그런 면에서 스윙의 경우 그놈/GTK의 테마를 무시하고 AA되지 않은 글꼴에 입력기 조차 GTK2의 입력기가 아닌 XIM을 쓰는 건 확실히 단점이라고 봅니다.

스윙은 윈도우즈 L&F나 최근의 GTK L&F등을 통해 이런 면을 보완하려 시도하고 있지만 처음부터 네이티브 위젯셋을 사용하는 SWT의 경우보다는 데스크탑 통합이나 속도 면에서 조금은 떨어질 수밖에 없습니다.

다른 걸 다 떠나서도 엔드유저가 (저작권 위반이지만) 윈도우즈에서 굴림체를 복사해서 특정 위치에 넣고 fonts.dir을 만들고 font.properties.ko에 해당 글꼴의 이름을 일일이 넣어줘야 자바 응용프로그램을 쓸 수 있다는 건 치명적입니다. 최소한 그놈의 경우 글꼴을 노틸러스에 드래그해 넣는 것으로 설치할 수 있고 제어판에서 모든 응용프로그램의 글꼴과 테마를 바꿀 수 있는데 스윙 어플리케이션만 따로 설정해야 하는 건 불편한 일입니다.

말씀하신 대로 이런 부분은 배포판에서 한글화한 JRE를 제공하기 전에는 해결되지 않습니다. 즉, 지금 시점에서 리눅스 스윙은 viable한 솔루션이 아니라는 뜻입니다.

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

kwon37xi의 이미지

fender wrote:

음... 보기에 따라 그럴 수도 있지만 예를들어 Gtk2기반인 SWT에 비해 단점이 많습니다. 일단 데스크탑 어플리케이션은 운영체제의 데스크탑 환경에 통합되어야 합니다. 하다 못 해 단축키나 포커스 움직임은 물론 글꼴이나 색상 선택도 가능하면 데스크탑의 테마를 따라가야 한다고 생각합니다.

그런 면에서 스윙의 경우 그놈/GTK의 테마를 무시하고 AA되지 않은 글꼴에 입력기 조차 GTK2의 입력기가 아닌 XIM을 쓰는 건 확실히 단점이라고 봅니다.

흠.. KDE사용자는 어쩌죠....?

fender의 이미지

kwon37xi wrote:
흠.. KDE사용자는 어쩌죠....?

그래서 swt-qt나 QTLookAndFeel이 나와야 하지 않을까요? (전자는 프로토타입이 있는데 저작권 문제로 발표를 못하고 있다네요)

SWT-QT의 경우 KDE에서도 다른 QT 어플리케이션과 동일한 룩엔필을 가질 거고, 따라서 글꼴이나 테마도 그쪽을 따라가겠지요.

스윙이 아직도 Xlib 기반인 건 AWT의 플랫폼 간의 '최대공약수'를 맞추겠다는 잘못된 발상에서 비록한게 아닌가 싶습니다. 그래서 심지어 트리나 테이블 조차 없는 그래픽 툴킷이 탄생한게 아닌지요...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

nachnine의 이미지

간단한 클라이언트 개발할거면
Delphi 추천입니다

VB도 있긴하지만 Runtime 모듈 사이즈가 압박이 심하죠

MFC/ Win32 API 갈려면 구현해야하는 코드의 분량이 많아집니다.
( 전 Custom control 개발해서 UI에 집어넣을때 외에는 잘 안쓰려고
노력중입니다. 하지만 잘 모르는 사람들은
VC로 만들었다고 하면 VB나 Delphi보다 더 좋아하죠 ...
구현된 결과물이 '똑같아도' 말이죠. )

Swing은 2000년도 즈음에 학교 프로젝트로 몇번 했었는데
느린속도와 긴 코드 때문에 .. 호감이 안생기더군요.
지금은 많이 나아졌나요?

serialx의 이미지

Kylix CLX 를 gtk 용으로 바꿀까 생각중에 있습니다.

컴포넌트를 gtk 기반으로 개조하는거죠..

그러고나서 Delphi/Kylix - GTK 기반 프로그램 개발을 할수 있도록..

생각중인거 무심코 적어봤습니다.

이한길의 이미지

fender wrote:
스윙... 설계는 예술이고 구현은 쥐약이지요 :)

맥에서야 스윙이 최고지만, 요즘엔 윈도우즈에선 그래도 쓸만 합니다. 문제는 리눅스인데... 솔직히 엔드 유저보고 "이 프로그램을 사용하려면 먼저 JRE를 다운 받아 깐 다음에 원하는 글꼴을 jre/lib/fonts에 복사해 넣고 KLDP에서 자바 한글 설정법에 대한 게시물을 찾아서 그대로 따라 하시면 한글이 잘 보일 겁니다" 라고 말하진 못하겠더군요 -_-;

맞습니다. 저도 처음에 조금... 하지만 버젼 몇 부터인지 font.properties.ko.RedHat80가 있는데 이거 열어서 간단히 글꼴 있는걸루 설정해주면 보입니다..

fender wrote:
아래는 지금 개발 중인 UI 스샷입니다 (자랑과 뽀대에 약한 fender라는... =3):

멋지네요

offree wrote:
떤 프로젝트에 사용하시는지요?(개인적인용도?)

네. 개인적인 용도입니다.

----
먼저 알게 된 것을 알려주는 것은 즐거운 일이다!
http://hangulee.springnote.com
http://hangulee.egloos.com

이한길의 이미지

fender wrote:
음... 보기에 따라 그럴 수도 있지만 예를들어 Gtk2기반인 SWT에 비해 단점이 많습니다. 일단 데스크탑 어플리케이션은 운영체제의 데스크탑 환경에 통합되어야 합니다. 하다 못 해 단축키나 포커스 움직임은 물론 글꼴이나 색상 선택도 가능하면 데스크탑의 테마를 따라가야 한다고 생각합니다.

...

말씀하신 대로 이런 부분은 배포판에서 한글화한 JRE를 제공하기 전에는 해결되지 않습니다. 즉, 지금 시점에서 리눅스 스윙은 viable한 솔루션이 아니라는 뜻입니다.

저는 개인적으로 어플이 운영체제의 데스크탑에 통합 되어야 한다고 생각하지 않습니다. 물론 윈도우만... 또는 리눅스 X윈도의 그놈만 혹은 KDE만 사용하겠다는 사용자에게는 그 데스크탑 환경에 통합되는 것이 바람직하다고 생각할 수 있겠습니다.

하지만 어플들이 그렇게 되려면 모든 데스크탑마다 GUI부분을 새롭게 개발해야 합니다. 또한 자바같은 경우는 SWT처럼 각각의 데스크탑에 맞게 해야겠지요. 이것은 개발에 있어서 많은 낭비를 초래합니다.

또한 개발자에 따라서 또는 사용자에 따라서 어느 데스크탑에서든 동일하게 보이는 어플을 선호하기도 합니다. 저 역시도 동일하게 보이는 어플을 선호합니다. 저는 스윙이 모든 플랫폼에서 동일하게 보여지는 것이 장점이라고 생각합니다.

저는 개인적으로 Swing이 XIM을 사용하는 것을 좋게 생각합니다. 제가 리눅스에 대해서 초보이고 비교적 무거운 X윈도 메니저인 그놈이나 KDE같은 데스크탑을 사용하지 않는 입장이기 때문에 그렇게 생각하는지도 모르겠지만 GTK2가 별도의 입력기를 사용하는 것은 낭비가 아닌가 싶습니다.

또한 한글화된 JRE에 대해서는 글쌔요.. 잘 모르겠지만 앞서 쓴 글에서도 잠간 썼듯이 "font.properties.ko.RedHat80"를 제공해주는 것으로 충분하다고 생각합니다.

fender wrote:
노틸러스에 드래그해 넣는 것으로 설치할 수 있고 제어판에서 모든 응용프로그램의 글꼴과 테마를 바꿀 수 있는데 스윙 어플리케이션만 따로 설정해야 하는 건 불편한 일입니다.

이건 자바도 되도록 그놈이 지원해주면 되겠네요. 자바가 모든 데스크탑을 지원하는 것은 어짜피 불가능하니까요. 내부를 뜯어보진 않았지만 제어판에서 글꼴 설정할 때 자바의 "font.properties.ko"도 변경하도록 해주면 되지요. 그리고 그렇게 편리할것을 기대한다는 것이 분산된 자발적인 참여를 하는 개발자들에 의해 개발되어졌고 또 개발되어지는 리눅스에서 기대하기는 어려운 일일 것입니다. 앞으로도 마찬가지지요.

아마도 fender님께서 그놈 유저이시기 때문에 그리 생각하신 것이 아닌가 싶은데요. 저는 처음에 그놈 설치 했을 때 X와 별도로 글꼴을 관리하는 것을 보고 조금은 혼란스러웠었습니다. 제가 그때 첨 접했고, 대략 훑어보고 삭제 한 후 지금까지 사용을 하지 않고 있기 때문에 잘 몰라서 그랬을 수도 있었겠지만요..

----
먼저 알게 된 것을 알려주는 것은 즐거운 일이다!
http://hangulee.springnote.com
http://hangulee.egloos.com