답변:
어딘가에 자바가 설치되어 있어야합니다. 이것은 물론 모든 GUI 프레임 워크에서 사실이지만, 자바는 2 톤 고릴라에 대한 인식을 가지고 있습니다. 로드가 더 좋아졌지만 초기 자바 애플릿 시절에는 많은 사람들이 꺼졌습니다. 하나의 앱만 실행하는 데 필요한 경우 보안 패치 등으로 최신 상태를 유지하는 것이 좋습니다. 누구나 YouTube에 Flash를 설치해야합니다. .Net 프레임 워크는 무대 뒤에서 설치되며 누구나 브라우저에서 자바 스크립트를 사용할 수 있습니다. Java는 일반적으로 추가 작업입니다.
한 번만 쓸 수는 있지만 어디에서나 실행해도 여전히 Mac OSX에 사용하려는 새로운 기능이 없거나 한 클라이언트가 JRE 1.4 이후에 맨드 레이크 리눅스를 업그레이드하는 것을 거부합니다.
개발자는 스레딩에 대해 생각해야합니다. 그리고 멀티 스레딩이 가능하기 때문에 까다로운 방법이지만 스윙은 모두 단일 스레드 인 것처럼 가장합니다. 그러나 가져온 라이브러리의 절반은 어느 정도의 멀티 스레딩을 가지고 있으며 EDT invokeLater에 대해 알고 있다고 가정하면 많은 교훈을 어렵게 만듭니다.
스윙 경험은 다른 종류의 UI 개발로 쉽게 전달되지 않습니다. 예를 들어 .css의 테이블을보고 있으면 Jtables, 렌더러, 편집기 등이 완전히 길을 잃게 될 것입니다.
일반적으로 Swing의 주요 문제점은 그것이 그것이 어떻게 시장에 팔리지 않았는가입니다. 많은 사용 사례에 완벽하게 적합한 기술이지만 처음 5-6 년 동안은 끔찍한 구현과 끔찍한 애플릿으로 가득했습니다. 그리고 이제는 웹 3.0 또는 그 밖의 모든 것에 대한 오래된 기술입니다.
내가 말한대로, 나는 스윙을 좋아하고 당신이 제공하는 것을 필요로 할 때 프로가 일반적으로 단점을 능가한다고 생각합니다. 그러나 웹 경험이 너무나 보편적이기 때문에 많은 사용자가 가장 간소화 된 놀라운 스윙 앱보다 웹 앱으로 더 쉬운 시간을 보낼 수 있습니다. 그리고 멋진 스윙 앱이 있지만 주류가 아닌 것 같습니다.
조나스,
Swing은 기본 아키텍처를 일반화하여 플랫폼에 중립적 인 사용자 경험을 제공합니다. OS에서 제공하는 유일한 헤비급 구성 요소는 JFrame 컨테이너이며 나머지는 Swing takeit에서 처리합니다. 다른 하드에있는 AWT는 OS에 모든 UI 구성 요소를 그리도록 요청합니다. 즉, OS에 고유 한 기본 UI 구성 요소를 사용하는 것처럼 많은 방법으로 더 빠릅니다. SWT는 버튼 및 레이블 (대부분의 OS에서 사용 가능)과 같은 다양한 표준 구성 요소에 대해 중간 수준을 달성하려고 시도하며, OS가 해당 구성 요소를 처리하고 다른 특수 구성 요소에 대해 SWT가 생성을 처리합니다.
즉, 단점을 설명 할 수 있습니다.
(1) 툴킷은 OS를 요청하지 않고 컴포넌트를 작성하고 렌더링하므로 OS에서 제공하는 내장 컴포넌트의 속도를 이용할 수 없습니다.
(2) UI는 사용자가 사용하는 모양과 느낌을 고려하여 대부분의 OS 플랫폼에 익숙하지 않기 때문에 특히 세심한주의를 기울이지 않습니다.
(3) 일부 레이아웃 관리자, 즉 GridBadLayout 등이 더 간단 해 질 수 있습니다. 사람들이 GridBagLayout을 맞춤형 코드로 감싸서 사용하는 간단한 프로젝트 수를 잃어 버렸습니다.
AWT, Swing 및 SWT로 간단한 앱을 작성하고 개발 방식을 최종 제품과 비교하고 다른 개발자가 작성한 다양한 의견을 검토하고 어느 것이 가장 적합한 지 결정하는 것이 좋습니다. 나는 수년간 Swing과 함께 일해 왔으며 SWT를 싫어했지만 다른 프레임 워크와 비교할 때 Swing이 훨씬 복잡하다는 것을 깨달았습니다.
스윙은 느리고 (나쁜 성능), 사용하기 어렵거나 어색한 (다른 많은 것들과 비교하여) 실제로 일부 플랫폼에서는 그다지 좋지 않습니다.