[java] 자바 데스크탑 애플리케이션 : SWT 대 스윙 [닫기]

저는 웹 개발자이며 첫 번째 실제 데스크톱 응용 프로그램을 구축 할 생각입니다. 아이디어는 API를 사용할 수없는 웹 응용 프로그램에서 매우 반복적 인 작업을 자동화하는 도구를 구축하는 것입니다.

Java를 사용하고 싶다는 것을 알고 있습니다. 나는 전에 웹 물건을 위해 그것을 사용했고, 구문을 꽤 잘 알고 있으며 응용 프로그램이 가능한 한 쉽게 플랫폼 간 크로스 폼을 원합니다.

SWT 또는 Swing을 사용 해야하는지 확실하지 않은 곳입니다. 주요 사용자가 Windows를 사용함에 따라 가능한 한 기본적으로보고 싶습니다. 리눅스와 맥은 작동하지만 외관은 그다지 중요하지 않습니다.

그렇다면 각 UI 프레임 워크, Swing 또는 SWT에 대한 논쟁은 무엇입니까?

감사.

추신 : 저는 Eclipse를 사용하여 Windows에서 개발합니다. 그러나 Netbeans을 가지고 노는 것에 대해 생각하고있었습니다.



답변

프로 스윙 :

  • 자바 라이브러리의 일부, 추가 네이티브 라이브러리 필요 없음
  • 모든 플랫폼에서 동일한 방식으로 작동
  • Netbeans 및 Eclipse의 통합 GUI 편집기
  • Sun / Oracle의 훌륭한 온라인 자습서
  • 공식 Java 확장 (예 : java OpenGL)에서 지원

단점 스윙 :

  • 기본 모양과 느낌은 실제 기본 시스템과 다르게 작동 할 수 있습니다.
  • 무거운 구성 요소 (native / awt)는 스윙 구성 요소를 숨 깁니다. 무거운 구성 요소를 사용하는 것이 드물기 때문에 대부분 문제가되지 않습니다.

장점 SWT :

  • 가능한 경우 기본 요소를 사용하므로 항상 기본 동작
  • 이클립스, GUI 편집기 VEP (VEP는 Swing 및 AWT도 지원)
  • 많은 수의 예제 온라인
  • awt 및 swing 구성 요소를 사용할 수 있도록 awt / swt 브리지가 통합되어 있음

단점 SWT :

  • 지원되는 시스템마다 기본 라이브러리가 필요합니다.
  • 사용 된 기본 자원 (힌트 옵션)으로 인해 모든 시스템에서 모든 동작을 지원하지는 않습니다.
  • 네이티브 구성 요소는 종종 부모와 함께 처리되지만 글꼴과 같은 다른 리소스는 수동으로 해제하거나 자동 해제를 위해 구성 요소에 대한 리스너로 처리해야합니다.

답변

고려해야 할 중요한 사항은 일부 사용자 및 일부 리셀러 (Dell)가 64 비트 Windows에 64 비트 VM을 설치하고 32 비트 및 64 비트 VM에서 동일한 SWT 라이브러리를 사용할 수 없다는 것입니다.

즉, 사용자에게 32 비트 또는 64 비트 Java VM이 있는지 여부에 따라 다른 패키지를 배포하고 테스트해야합니다. 참고 이 문제를예를 들어 Azureus 를 . 그러나 현재는 프론트 다운로드 페이지의 빌드가 64 비트 VM에서 실행되지 않는 Eclipse에서도 있습니다.


답변

프로 스윙 :

  • 스윙 IMHO의 가장 큰 장점은 라이브러리를 응용 프로그램과 함께 제공 할 필요가 없다는 것입니다 (수십 MB (!)를 피함).
  • 기본 모양과 느낌이 초기보다 스윙에 훨씬 좋습니다
  • 성능은 swt와 비슷합니다 (스윙은 느리지 않습니다!)
  • NetBeans는 Matisse를 편안한 컴포넌트 빌더로 제공합니다.
  • JavaFX 내에서 Swing 구성 요소의 통합이 더 쉽습니다.

그러나 결론적으로 나는 ‘순수한’스윙 또는 swt를 사용하지 않는 것이 좋습니다 😉 스윙 / 스 wt 아웃을위한 몇 가지 애플리케이션 프레임 워크가 있습니다. 여기를보십시오 . 가장 큰 플레이어는 넷빈 (스윙)과 이클립스 (swt)입니다. 또 다른 좋은 프레임 워크는 그리폰 일 수 있고 멋진 ‘구성 요소 세트’는 피벗 (스윙)입니다. Griffon은 많은 라이브러리를 통합하고 스윙뿐만 아니라 매우 흥미 롭습니다. . 피벗, swt 등


답변

몇 가지 이유로 Swing을 사용합니다.

  • 더 오래되었고 더 많은 노력이 적용되었습니다. 따라서 더 많은 기능이 완성되고 버그가 적을 수 있습니다.

  • 성능이 뛰어난 응용 프로그램을 만드는 방법에 대한 많은 설명서와 기타 지침이 있습니다.

  • Swing에 대한 변경 사항이 모든 플랫폼에 동시에 전파되는 것처럼 보이며 SWT에 대한 변경 사항은 Windows에 먼저 나타난 다음 Linux에 나타납니다.

기능이 풍부한 응용 프로그램을 구축하려면 NetBeans RCP 를 확인하십시오. (Rich Client Platform) . 학습 곡선이 있지만 약간의 연습으로 멋진 응용 프로그램을 신속하게 구성 할 수 있습니다. Eclipse 플랫폼에 대한 충분한 경험이 없어서 올바른 판단을 내릴 수 없습니다.

전체 RCP를 사용하지 않으려는 경우 NetBeans에는 독립적으로 꺼내서 사용할 수있는 유용한 구성 요소가 많이 있습니다.

또 다른 조언은 다른 레이아웃 관리자를 살펴보십시오. 내가 배우는 동안 그들은 오랫동안 저를 넘어 뜨 렸습니다. 최고 중 일부는 표준 라이브러리에도 없습니다. MigLayout 와 (스윙과 SWT 모두) JGoodies의 양식 도구는 내 의견에 가장 좋은 두 가지입니다.


답변

Java의 “네이티브”이기 때문에 스윙을 선택했습니다.

또한 http://swingx.java.net/을 살펴보십시오 .


답변

요구 사항의 경우 SWT만큼 기본 플랫폼과 밀접하게 통합되지 않고 시작하기가 약간 쉬우므로 요점은 Swing을 사용하는 것처럼 들립니다.

스윙은 일반적으로 안전한 내기입니다.


답변

흥미로운 질문입니다. SWT를 잘 모르겠다 (Swing 및 AWT와 달리) SWT / Swing / AWT에 대한 비교는 다음과 같습니다.

http://www.developer.com/java/other/article.php/10936_2179061_2/Swing-and-SWT-A-Tale-of-Two-Java-GUI-Libraries.htm

다음은 기본적으로 SWT에 대한 자습서를 얻을 수있는 사이트입니다 ( http://www.java2s.com/Tutorial/Java/0280__SWT/Catalog0280__SWT.htm ).

올바른 결정을 내리기를 바랍니다 (코딩에 올바른 결정이있는 경우) … 🙂