나는 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가 최선의 선택입니다.
@Marko : 왜 스윙은 사용되지 않을 것이라고 생각합니까? 그리고 javafx를 어떻게 대체한다고 생각하십니까? –
JavaFX는 비 베타 포맷으로도 제공됩니까? 나는 JavaFX가 Swing의 경쟁자가 될 것이라고 생각하지 않았습니다. 그들은 처음에 JavaFX를 보았을 때 보완적인 것처럼 보였습니다 ... –
SwingX는 취소되지 않았으며 스윙하지 않습니다. SwingX는 Swing 위에 확장 기능을 추가하는 오픈 소스 프로젝트입니다. Sun은 현재 SwingX에 헌신하는 직원이 없습니다. 분명히 많은 노력이 현재 JavaFX에 투입되고 있습니다. JavaFX 데스크탑은 Swing을 사용합니다. –