Was soll ich SWT oder Swing wählen, um GUI in Java zu programmieren?

8

Ich muss eine GUI-Anwendung in Java erstellen. Ich habe gerade festgestellt, dass ich verschiedene optionale Möglichkeiten habe (SWT und Swing gehören dazu).

Ich habe bereits herausgefunden, dass es viele Diskussionen darüber gibt, welcher Weg besser ist und ich möchte nicht tief in diese Diskussionen eingehen (ich bin ein Neuling).

Ich interessiere mich nicht für alle Aspekte des Dilemmas. Ich habe nur ein paar Hauptanforderungen aufgeführt:

  1. Es sollte einfach zu bedienen sein (einfach zu erstellen, was ich will).
  2. Am Ende möchte ich nur eine Datei haben, die einfach ausgeführt werden kann (ohne zusätzliche Tricks, Einstellungen und Installationen) wie eine eigenständige Anwendung.
  3. Es sollte plattformunabhängig sein. Oder genauer gesagt sollte die Anwendung auf Microsoft-Windows und Ubuntu (Linux) funktionieren.
Roman 17.02.2010, 13:36
quelle

8 Antworten

6

Basierend auf Ihren Anforderungen würde ich Swing sagen. SWT hat ein plattformspezifischeres Aussehen, aber Java ist mit Swing integriert, es gibt kein Problem mit externen Bibliotheken wie mit SWT, obwohl die Verwendung von Eclipse das viel einfacher machen kann (ich entwickle immer noch einiges von meinen Sachen aus die Befehlszeile leider).

Sie sind beide benutzerfreundlich (gut, wenn Sie sich erst einmal an die Layout-Manager gewöhnt haben) und funktionieren unter Ihren beiden Plattformen gut, aber da Sie als einziges Unterscheidungsmerkmal den Eindruck haben, "ohne zusätzliche Tricks" , Einstellungen und Installationen ", würde ich bei Swing bleiben.

Das ist mein Rat. Fühlen Sie sich frei zu akzeptieren oder zu ignorieren oder nennen Sie mich ein altes Blässhuhn. Ich werde nicht beleidigt: -)

    
paxdiablo 17.02.2010 13:42
quelle
6

Ich habe gerade ein zweijähriges Projekt abgeschlossen, bei dem ich eine Business-Anwendung erstellt habe. Mein Fokus lag eindeutig auf Usability und Geschwindigkeit.

Meine Entscheidung hat am Ende aus folgenden Gründen eindeutig zu SWT geführt:

  • Benutzer in Unternehmen neigen dazu, Terminalserver und RDP für ihre Apps zu verwenden. Jede Swing App ist sehr langsam über RDP, da die App jedes Pixel immer wieder rendern muss. Versuchen Sie es mit Photoshop oder Gimp über RDP und scrollen Sie in einem Bild. Das ist die Leistung, die Sie mit Swing in Tabellen haben.
  • Einige sehr gute GUI-Komponenten sind nur als COM-Objekte verfügbar. Ich wollte diese nutzen können, und da 100% aller Geschäftskunden Windows-Benutzer sind, akzeptieren sie, dass Ihre Software nur unter Windows läuft. (Wir haben auch Linux-Clients, aber nur für Maschinen-Eingangs-Terminals, die nicht die vollständigen Windows-GUIs benötigen)
  • Wir verwenden SWTDesigner als GUI-Designer, der so gut ist wie SwingDesigner für Swing (beide sind die besten GUI-Designer überhaupt). Sie sind den Preis wert, wenn Sie ein paar hundert Masken erstellen müssen.
  • Unsere GUI sieht zu 100% nativ aus, ehrt die großen Schriftarten, die sie auf ihren Desktops verwenden, und fühlt sich schnell an.

Wir sind sehr zufrieden mit SWT, aber es hat einige Nachteile:

  • Native Java-Komponenten sind etwas selten. Es gibt mehr auf der Swing-Seite des Lebens.
Daniel 03.05.2010 19:19
quelle
3

Ich würde vorschlagen, dass Sie die Swing-Bibliotheken von Java verwenden, wenn Sie mit der Java-GUI-Entwicklung nicht vertraut sind. Sie sind sehr gut dokumentiert und es gibt viele Online-Tutorials, unter anderem auf Suns Java-Website ( hier ).

GUI-Entwicklung in Java ist nicht sehr einfach, aber die verfügbaren Tools werden immer besser. Ich würde vorschlagen, dass Sie die NetBeans IDE ausprobieren, die einen netten visuellen Entwerfer für GUI-Bestandteile hat. Ich habe den GUI-Designer der Eclipse-IDE nicht benutzt, aber ich verstehe auch, dass es gut ist. Sie müssen Ihren Kopf über das MVC-Muster bringen, aber es sollte eine gute Lernerfahrung sein.

Kurz gesagt, meine Stimme bezieht sich auf die Verwendung von Swing / JFC, insbesondere wenn Sie mit der Java-GUI-Entwicklung noch nicht vertraut sind.

EDIT - Sie können das Aussehen einer Java-APP sehr einfach steuern. Wenn Sie das plattformunabhängige (Metal) -Look and Feel verwenden, wird Ihre GUI unter Windows und unter Linux ziemlich identisch aussehen. Natürlich läuft eine Java-App problemlos unter Windows von * nux, solange eine unterstützte JVM installiert ist.

    
Luhar 17.02.2010 13:42
quelle
2

Ich kann noch keinen Kommentar hinzufügen, da ich neu hier bin (bitte mod me up, damit ich einen Kommentar abgeben kann), aber die Wahl von Swing oder SWT hängt von der verwendeten IDE ab.

Wenn Sie Eclipse verwenden, ist beides in Ordnung.

Wenn Sie die kostenlose IntelliJ IDEA Community-Edition verwenden, verwenden Sie Swing lieber, weil der GUI-Editor der IDE "nur Swing" ist.

Ich nehme an, Sie verwenden Eclipse?

    
LowLevelAbstraction 17.02.2010 13:43
quelle
2

Aufgrund Ihrer Anforderungen empfehle ich Swing:

  • SWT benötigt zusätzliche native Bibliotheken (verletzt Punkt # 2),
  • Sie werden wahrscheinlich mehr Unterrichtsmaterial zu Swing finden (da Sie ein Neuling sind),
  • Beide Lösungen sind etwas plattformunabhängig und werden auf beiden genannten Plattformen unterstützt, aber SWT wird nicht auf allen Plattformen gleichermaßen unterstützt,
  • Es gibt mehr WYSIWYG-Tools, die Swing unterstützen, was bei der Lernkurve helfen kann.

Beachten Sie, dass die APIs ähnlich und manchmal identisch sind, so dass das Lernen Ihnen einen Vorsprung auf der anderen Seite gibt.

    
Faron 17.02.2010 13:51
quelle
1

Ich finde, dass Netbeans Drag & Drop-Editor und vorverdrahtete Swing-Desktop-Anwendungsvorlage viel einfacher zu verwenden ist als das, was im Lieferumfang von Eclipse enthalten ist, also würde ich das vorschlagen.

Es wird automatisch ein ausführbares jar erstellt und Sie können auch einen Java Web Start-Launcher erstellen, wenn Sie das möchten. Und da es Java ist, ist es Betriebssystem-unabhängig.

Hier ist ein Link zu den Quickstart-Tutorials .

    
JRL 17.02.2010 13:43
quelle
1

Schaukel,

SWT funktioniert unter Ubuntu, aber nicht annähernd so gut wie unter Windows, das ist zumindest meine Erfahrung. Der Hauptgrund, um SWT zu wählen, ist, wenn Sie Ihre Anwendung auf dem Eclipse RCP-Framework (wo Sie eine andockbare Ansichten / Editoren, Plugin-Mechanismus, automatische Updates, Benutzerrollen, Hilfe-Browser, Präferenzmechanismus usw.) oder wenn Sie möchten Anwendung, um dieses polierte native Aussehen zu haben.

    
Kire Haglin 18.02.2010 00:19
quelle
0

Aus meiner Erfahrung, wenn Sie einfach entwickeln wollen, ist Swing der richtige Weg. Wenn Sie eine gute Leistung benötigen, dann ist SWT eine bessere Wette.

HINWEIS: Das letzte Mal, als ich GUI-Entwicklung in Java gemacht habe, war vor 4 Jahren.

    
tster 17.02.2010 13:44
quelle

Tags und Links