2008-11-11 6 views
17

또는 가까운 미래에 새 프로젝트를 시작하려면 어떤 GUI 프레임 워크/라이브러리를 선택 하시겠습니까?지금 선택할 Java GUI 프레임 워크는 무엇입니까?

상업적 용도 및 크로스 플랫폼에서 무료 여야합니다.

나는 행복한 스윙 사용자 있었지만, 아직 황금 시간대에 대한 준비가되어 있지 자바 FX를 누른 상태에서 썬은 중단에 스윙를 밀어처럼 보인다.

SWT도 있지만 Linux에서 문제가있는 것으로 보입니다.

귀사의 GUI 라이브러리/프레임 워크는 무엇입니까?

편집 : Sun은 swingx 프로젝트를 취소했습니다. http://swingx.dev.java.net에 대한 포럼의 의견에서 이전에 코어 스윙에서 일해온 Sun 자원의 대부분은 현재 JavaFx 전체 시간을 개발 중입니다.

+0

@Marko : 왜 스윙은 사용되지 않을 것이라고 생각합니까? 그리고 javafx를 어떻게 대체한다고 생각하십니까? –

+0

JavaFX는 비 베타 포맷으로도 제공됩니까? 나는 JavaFX가 Swing의 경쟁자가 될 것이라고 생각하지 않았습니다. 그들은 처음에 JavaFX를 보았을 때 보완적인 것처럼 보였습니다 ... –

+0

SwingX는 취소되지 않았으며 스윙하지 않습니다. SwingX는 Swing 위에 확장 기능을 추가하는 오픈 소스 프로젝트입니다. Sun은 현재 SwingX에 헌신하는 직원이 없습니다. 분명히 많은 노력이 현재 JavaFX에 투입되고 있습니다. JavaFX 데스크탑은 Swing을 사용합니다. –

답변

7

나는 Sun의 잘못된 관리에도 불구하고 스윙은 여전히 ​​훌륭한 프레임 워크라고 생각합니다. lot을 사용할 수 있습니다. 특히 "lot"에 사용자 정의 렌더링 UI 컨트롤이 포함되는 경우에 유용합니다. 응용 프로그램에 브랜드화 된 LAF가 필요하거나 여기저기서 몇 가지 복잡한 사용자 정의 컨트롤이 필요한 경우 Swing은 원하는 것입니다.

동전의 반대쪽에는 SWT가 상당히 좋아요. 모든 사람이 자바를 인수하려는 것은 IBM의 생각 이었지만, 실제로는 Swing을 보완하는 또 다른 UI 프레임 워크입니다. SWT를 사용하여 초고속 그래픽 렌더링 (구체적으로 : 합성)을하거나 정말로 사소한 커스텀 컨트롤을 만드는 것을 권하지는 않지만, 다른 모든 것들은 정말 대단합니다. 비트 마스크 및 사용자 관리 이벤트 발송 루프에 의존하는 등의 이유로 API 자체는 많은 비판을 받지만 일단 익숙해지면 대부분 투명합니다. 구성 요소 자체는 확장 성 및 유사성 측면에서 Swing보다 훨씬 간단합니다. 즉, API가 비례하여 더 간단해질 수 있습니다. SWT에서 테이블을 생성하고 채우는 방법을 실제로 기억할 수 있습니다. 반면에 나는 이 Google의 도움없이 스윙에서 처리 된 것으로 생각하지 않습니다.

지금 SWT의 가장 큰 문제는 안정 버전이 Mac OS X의 Carbon에 달려 있다는 것입니다. 즉, SWT 앱은 Java 5 (32 비트 SoyLatte)에서만 실행할 수 있습니다. 다른 플랫폼의 경우, SWT는 Windows (Vista 및 XP)에서 놀랍고 GTK Linux에서도 거의 비슷합니다. 나는 (최근에) 리눅스에서 SWT에 관한 어떤 문제도 없었다. 그래서 나는 당신이 그것을 아프다고 언급하는 것에 약간 놀랐다.

귀하의 질문에 다시 : 귀하의 응용 프로그램이 필요에 따라 다릅니다. 수 많은 사용자 정의 컨트롤과 복잡한 합성이 포함 된 화려한 사용자 지정 스타일의 응용 프로그램 인 경우 스윙은 유일한 게임입니다. 그러나보다 간단한 API가 더 중요한 경우 또는 사용자가 플랫폼 LAF 충실도에서 궁극적 인 요구를하는 경우 SWT가 최선의 선택입니다.

+0

SWT가 꽤 좋은 GUI 프레임 워크라는 것에 동의합니다. 또한 PocketPC에서 실행됩니다. 즉, 경영진이 수요를 창출 할 때 앱의 모바일 버전을 비교적 빨리 만들 수 있습니다. – JeeBee

3

저는 여전히 Swing을 사용하며, 더 이상 지원되지 않을 때까지 계속해서 수행 할 것입니다. Javafx에 대해 머리를 주셔서 감사합니다. 이제 저는 Javafx에 대해 살펴 보겠습니다.

+0

예, AWT가 지원되는 방식에서 지원되지만 스윙 측면에서는 새로운 개발이 없을 것입니다. – Marko

+1

아,하지만 현재 버전이 필요한대로 작동한다면 새로운 개발이 없다면 누가 신경 쓰겠습니까? 파산하지 않았다면 고치지 마십시오. – Elie

4

지금 당장 SWT 또는 Qt (Jambi)를 사용하고 있습니다.

지난 10 년 동안 스윙이 진화하지 않았지만 버그가 수정되지 않았기 때문에 개발이 JavaFX에 유리하게 중단되어 새로운 기능을 볼 수 없습니다. JavaFX는 멋져 보일 것입니다. 그러나 여전히 스노우웨어가 쇠퇴 해 버린 사람들에 의해 만들어 졌기 때문에 돈을 들이지 않고 있습니다.

SWT와 Qt 사이에서는 Qt를 사용하는 것을 선호합니다. Qt를 사용하는 것을 선호합니다. Qt는 자신이하고있는 것을 잘 아는 사람들이 만든 성숙한 강력한 프레임 워크이기 때문에 선호합니다.) 그리고 SWT는 새로운 프로젝트가 Qt와 호환되지 않았습니다.

관련 문제