Ich bin tagsüber Webentwickler und denke darüber nach, meine erste echte Desktop-Anwendung zu erstellen. Die Idee ist, ein Tool zu erstellen, das eine sich sehr wiederholende Aufgabe in einer Webanwendung automatisiert, in der keine API verfügbar ist.
Ich weiß, dass ich Java verwenden möchte. Ich habe es zuvor für Web-Inhalte verwendet, kenne die Syntax ziemlich gut und möchte, dass die Anwendung plattformübergreifend so einfach wie möglich ist.
Ich bin mir nicht so sicher, ob ich SWT oder Swing verwenden soll. Da mein Hauptpublikum Windows verwendet, möchte ich es dort so nativ wie möglich gestalten. Linux und Mac sollten funktionieren, aber das Aussehen ist hier nicht so wichtig.
Was sind die Argumente für und gegen jedes UI Framework, Swing oder SWT?
Vielen Dank.
PS: Ich entwickle unter Windows mit Eclipse. Aber ich dachte darüber nach, mit Netbeans zu spielen.
Antworten:
Pros Swing:
Nachteile Swing:
Vorteile SWT:
Nachteile SWT:
quelle
Es ist wichtig zu berücksichtigen, dass einige Benutzer und einige Wiederverkäufer (Dell) eine 64-Bit-VM auf ihrem 64-Bit-Windows installieren und Sie nicht dieselbe SWT-Bibliothek auf 32-Bit- und 64-Bit-VMs verwenden können.
Dies bedeutet, dass Sie verschiedene Pakete verteilen und testen müssen, je nachdem, ob Benutzer über eine 32-Bit- oder eine 64-Bit-Java-VM verfügen. Sehen Sie dieses Problem beispielsweise bei Azureus, aber Sie haben es auch bei Eclipse, wo die Builds auf der vorderen Download-Seite ab heute nicht mehr auf einer 64-Bit-VM ausgeführt werden.
quelle
Pro Swing:
Aber unter dem Strich würde ich nicht empfehlen, 'pure' Swing oder swt zu verwenden ;-) Es gibt verschiedene Anwendungs-Frameworks für Swing / swt out. Schau hier . Die größten Spieler sind Netbeans (Swing) und Eclipse (Swt). Ein weiterer schöner Rahmen könnte Griffon sein und ein schöner Satz von Komponenten ist Pivot (Swing). Griffon ist sehr interessant, weil es viele Bibliotheken integriert und nicht nur Swing ; auch Pivot, SWT usw.
quelle
Ich würde Swing aus mehreren Gründen benutzen.
Es gibt es schon länger und es wurden mehr Entwicklungsanstrengungen unternommen. Daher ist es wahrscheinlich mehr Funktionen vollständig und hat (vielleicht) weniger Fehler.
Es gibt viele Dokumentationen und andere Anleitungen zur Erstellung performanter Anwendungen.
Wenn Sie eine sehr funktionsreiche Anwendung erstellen möchten, sollten Sie sich NetBeans RCP (Rich Client Platform) ansehen. Es gibt eine Lernkurve, aber Sie können mit ein wenig Übung schnell schöne Anwendungen zusammenstellen. Ich habe nicht genug Erfahrung mit der Eclipse-Plattform, um ein gültiges Urteil zu fällen.
Wenn Sie nicht das gesamte RCP verwenden möchten, bietet NetBeans auch viele nützliche Komponenten, die herausgezogen und unabhängig voneinander verwendet werden können.
Ein weiterer Ratschlag: Schauen Sie sich verschiedene Layout-Manager an. Sie haben mich lange gestolpert, als ich gelernt habe. Einige der besten sind nicht einmal in der Standardbibliothek. Die Tools MigLayout (sowohl für Swing als auch für SWT) und JGoodies Forms gehören meiner Meinung nach zu den besten.
quelle
Ich würde Swing wählen, nur weil es für Java "heimisch" ist.
Schauen Sie sich außerdem http://swingx.java.net/ an .
quelle
Für Ihre Anforderungen klingt es so, als würde Swing unter dem Strich verwendet werden, da der Einstieg etwas einfacher ist und nicht so eng in die native Plattform integriert ist wie SWT.
Swing ist normalerweise eine sichere Wette.
quelle
Interessante Frage. Ich kenne SWT nicht so gut, um damit zu prahlen (im Gegensatz zu Swing und AWT), aber hier ist der Vergleich von 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
Und hier ist die Seite, auf der Sie ein Tutorial zu praktisch allem auf SWT erhalten können ( http://www.java2s.com/Tutorial/Java/0280__SWT/Catalog0280__SWT.htm ).
Ich hoffe, Sie treffen eine richtige Entscheidung (wenn es richtige Entscheidungen bei der Codierung gibt) ... :-)
quelle
Wenn Sie eine voll funktionsfähige Anwendung mit mehr als einer Handvoll Funktionen erstellen möchten, empfehle ich, Eclipse RCP als Framework zu verwenden.
Wenn Ihre Anwendung nicht zu groß wird oder Ihre Anforderungen einfach zu einzigartig sind, um von einem normalen Geschäftsframework verarbeitet zu werden, können Sie sicher mit Swing springen.
Am Ende des Tages würde ich Ihnen empfehlen, beide Technologien auszuprobieren, um den für Sie besseren zu finden. Wie bei Netbeans vs Eclipse vs IntelliJ gibt es hier keine absolut richtige Antwort und beide Frameworks haben ihre eigenen Nachteile.
Pro Swing:
Pro SWT:
quelle
Eine Sache zu beachten: Screenreaders
Aus bestimmten Gründen funktionieren einige Swing-Komponenten bei Verwendung eines Screenreaders (und der Java AccessBridge für Windows) nicht gut. Wissen Sie, dass unterschiedliche Screenreader zu unterschiedlichem Verhalten führen. Und meiner Erfahrung nach schneidet der SWT-Tree in Kombination mit einem Screenreader viel besser ab als der Swing-Tree. Daher wurden in unserer Anwendung sowohl SWT- als auch Swing-Komponenten verwendet.
Für das Verteilen und Laden der richtigen SWT-Bibliothek ist dieser Link möglicherweise hilfreich: http://www.chrisnewland.com/select-correct-swt-jar-for-your-os-and-jvm-at-runtime-191
quelle
SWT wurde als Reaktion auf die Trägheit von Swing um die Jahrhundertwende entwickelt. Jetzt, da die Leistungsunterschiede vernachlässigbar werden, ist Swing meiner Meinung nach eine bessere Option für Ihre Standardanwendungen. SWT / Eclipse hat ein schönes Framework, das bei vielen Kesselplattencodes hilft.
quelle