데스크톱 애플리케이션용 스윙과 JavaFx 비교
저는 현재 SWT를 사용하고 있는 매우 큰 프로그램을 가지고 있습니다.이 프로그램은 Windows, Mac, Linux 모두에서 실행할 수 있으며 많은 요소를 갖춘 대형 데스크톱 애플리케이션입니다.SWT가 좀 낡아서 Swing이나 JavaFX로 바꾸고 싶습니다.그리고 세 가지에 대한 당신의 생각을 듣고 싶습니다.
데스크톱 GUI 어플리케이션에는 어떤 것이 더 좋을까요?(온라인에서 찾아보니 JavaFX가 Swing만큼 좋다는 의견이 많았지만, 단순한 의견싸움 외에는 타당한 주장은 별로 없었습니다.)Windows, Mac 및 일부 일반적인 Linux 배포판 모두에서 작동해야 합니다.
무엇이 더 깨끗하고 유지보수가 쉬울까요?
어떤 것을 처음부터 구축하는 것이 더 빠를까요?
만약 도움이 된다면, 나는 내 어플리케이션에 MVC 메트올로지를 사용하고 있다.
무엇이 더 깨끗하고 유지보수가 쉬울까요?
모든 것이 동일하다면, 아마도 JavaFX - API는 컴포넌트 간에 훨씬 더 일관성이 있습니다.그러나 이것은 코드를 작성하기 위해 어떤 라이브러리를 사용하는지보다 코드가 어떻게 작성되는지에 따라 크게 달라집니다.
그리고 처음부터 구축하는 데 어떤 것이 더 빠를까요?
무엇을 만들고 있는지에 따라 크게 달라지죠.Swing은 더 많은 컴포넌트(서드파티제 및 빌트인)를 갖추고 있으며, 모든 컴포넌트가 새로운 JavaFX 플랫폼으로의 이행은 아직 완료되지 않았기 때문에 약간의 커스텀이 필요한 경우 휠을 재발명할 수 있습니다.한편, 트랜지션/애니메이션/비디오등의 작업을 하고 싶은 경우는, FX로 간단하게 실시할 수 있습니다.
한 가지 더 명심해야 할 것은 (아마도) 보고 느끼는 것이다.반드시 기본 시스템이 있어야 하는 경우 JavaFX(현재는)는 이를 제공할 수 없습니다.큰 문제는 아니지만(어쨌든 기본 FX 룩을 선호합니다), 일부 정책은 시스템 스타일을 제한하도록 규정하고 있습니다.
개인적으로는 JavaFX가 아직 등장하지는 않았지만(사용할 수 있는 수준 이상), Swing은 현재 완전히 기능 및 지원되고 있는 경계선-레거시 UI 라이브러리로 간주됩니다(따라서 향후 몇 년 동안 FX가 이를 추월할 가능성은 낮습니다).
Oracle에서 설명한 바와 같이 JavaFX는 Java 기반 리치 클라이언트 전략의 다음 단계입니다.따라서 귀사의 상황에 맞는 권장 사항은 다음과 같습니다.
유지보수가 쉽고 깨끗한 것은 무엇입니까?
- JavaFX는 FXML을 사용한 UI 마크업, CSS를 사용한 테마링 등 Swing에 비해 몇 가지 개선점을 도입했습니다.모듈러형으로 깔끔하고 유지보수가 용이한 코드를 작성할 수 있습니다.
처음부터 구축하는 것이 빠른 것은 무엇입니까?
- 이것은, 스킬과 사용하는 툴에 크게 의존하고 있습니다.
- 스윙을 위해 다양한 IDE가 빠른 발전을 위한 도구를 제공합니다.개인적으로 찾은 최고의 것은 NetBeans의 GUI 빌더입니다.
- JavaFX는 다양한 IDE에서도 지원되지만 현재 Swing의 지원만큼 성숙하지는 않습니다.단, FXML 및 CSS에서의 마크업이 지원되므로 JavaFX에서의 GUI 개발은 직관적입니다.
MVC 패턴 지원
- JavaFX는 MVC 패턴에 매우 적합하며 프레젠테이션(FXML, CSS), 모델(Java, 도메인 객체) 및 로직(Java)으로 작업을 깔끔하게 구분할 수 있습니다.
- IMHO씨, Swing의 MVC 지원은 별로 매력적이지 않습니다.다양한 컴포넌트에서 볼 수 있는 흐름은 일관성이 결여되어 있지 않습니다.
자세한 내용은 여기에서 JavaFX에 관한 Oracle의 FAQ 투고를 참조하십시오.
이에 대해서는 아무도 언급하지 않았지만 JavaFX는 "jfxrt.jar" 지원이 없기 때문에 Oracle(Solaris 등)에 의해 "서버"로 간주되는 특정 아키텍처에서 컴파일 또는 실행되지 않습니다.추후 통지가 있을 때까지 SWT를 고수해
이 질문에 대한 정답은 없다고 생각합니다만, 대폭적인 정비가 필요한 심각한 한계에 직면하지 않는 한 SWT를 계속 사용하는 것이 좋습니다.
또한 SWT는 사실 Swing보다 더 새롭고 적극적으로 유지 보수되고 있습니다.(원래는 토종 부품을 사용하여 Swing을 대체하기 위해 개발되었습니다.)
원하는 기능을 하는 (서드파티?) 컴포넌트를 찾습니다.여러 리소스를 예약할 수 있는 어젠다 뷰용 맞춤형 Swing 컴포넌트 및 키보드 내비게이션 등에 적합한 Excel과 같은 그리드를 작성해야 했습니다.문제가 생길 때마다 Swing의 많은 복잡함을 파고들어야 했기 때문에 그것들을 잘 작동시키느라 고생했습니다.마우스 및 포커스 동작 및 기타 많은 동작은 특히 캐주얼한 Swing 사용자에게 매우 어렵습니다.JavaFX가 좀 더 미래지향적이고 처음부터 원활했으면 좋겠습니다.
비디오가 내장된 구형 노트북에서는 Swing 앱이 JavaFX 앱보다 훨씬 빠르게 시작되고 작동합니다.개발에 관해서는 Scala Swing 앱에 2가 포함되어 있는 Scala Swing 앱으로 전환할 것을 권장합니다.자바보다 코드가 3배 적습니다.Swing vs SWT: Netbeans GUI는 Eclipse보다 상당히 빠릅니다.
언급URL : https://stackoverflow.com/questions/16694948/swing-vs-javafx-for-desktop-applications
'programing' 카테고리의 다른 글
Vue3와 Vuex4 및 TypeScript를 사용하여 스토어 모듈을 설정하는 방법 (0) | 2022.06.15 |
---|---|
Java 8에서 유형을 변환하는 축소 방법을 위해 결합기가 필요한 이유는 무엇입니까? (0) | 2022.06.15 |
재사용 가능한 VueJS 컴포넌트에서의 테일윈드 CSS 클래스 덮어쓰기 (0) | 2022.06.14 |
Vim을 Java IDE로 사용하기 위한 힌트 (0) | 2022.06.14 |
Java에서는 super.super.method()가 허용되지 않는 이유는 무엇입니까? (0) | 2022.06.14 |