Ich habe Java Swing für einige Desktop-Anwendungen verwendet. Aber ich habe andere GUI-Frameworks nicht so oft verwendet, daher kann ich sie nicht vergleichen.
Es gibt definitiv einige Dinge, die ich mit Swing mag und einige, die ich nicht mag, aber das ist die Situation bei fast allem.
Was sind die größten Nachteile des Java Swing GUI-Frameworks?
frameworks
gui
swing
Jonas
quelle
quelle
Antworten:
Sie müssen Java irgendwo installiert haben. Dies gilt natürlich für alle GUI-Frameworks, aber Java hat die Wahrnehmung eines 2-Tonnen-Gorillas. Es ist viel besser geworden, aber diese frühen Java-Applet-Tage haben viele Leute abgeschaltet. Wenn Sie es nur zum Ausführen Ihrer einen App benötigen, ist eine Menge Wartung erforderlich, um sie mit Sicherheitspatches und dergleichen auf dem neuesten Stand zu halten. Jeder muss Flash für Youtube haben, das .Net Framework wird hinter den Kulissen installiert und jeder hat Javascript in seinem Browser aktiviert. Java ist normalerweise eine zusätzliche Aufgabe.
Obwohl es ein bisschen einmal geschrieben ist und überall ausgeführt wird, stellen Sie immer noch fest, dass Mac OSX nicht über dieses neue Produkt verfügt, das Sie verwenden möchten, oder dass ein Client sich weigert, sein Mandrake-Linux nach JRE 1.4 zu aktualisieren.
Als Entwickler muss man über Threading nachdenken. Und es ist auf knifflige Weise, da Multithreading möglich ist, aber Swing so tut, als wäre alles Single-Threading. Aber dann hat die Hälfte der Bibliotheken, die Sie abrufen, ein gewisses Maß an Multithreading und geht davon aus, dass Sie sich mit EDT invokeLater auskennen, und es erzwingt viele Lektionen auf die harte Tour.
Swing-Erfahrung lässt sich nicht einfach auf andere Arten der UI-Entwicklung übertragen. Wenn Sie sich beispielsweise mit Tabellen in CSS auskennen, werden Sie von Jtables, Renderern, Editoren usw. vollständig überlistet.
Im Allgemeinen besteht das Hauptproblem bei Swing darin, dass es nicht der Vermarktung entsprach. Es ist eine vollkommen adäquate Technologie für viele Anwendungsfälle, aber diese ersten 5 oder 6 Jahre waren voller schrecklicher Implementierungen und grausamer Applets. Und jetzt ist es alte Technik - weiter zu Web 3.0 oder was auch immer.
Alles in allem mag ich Swing und denke, dass die Vorteile im Allgemeinen die Nachteile überwiegen, wenn Sie das brauchen, was es bietet. Allerdings ist das Web-Erlebnis jetzt so allgegenwärtig, dass viele Benutzer es mit einer Web-App leichter haben werden als mit der optimiertesten erstaunlichen Swing-App. Und es gibt tolle Swing-Apps, aber sie scheinen kein Mainstream zu sein.
quelle
Jonas,
Swing verallgemeinert Ihre zugrunde liegende Architektur, um Ihnen eine plattformneutrale Benutzererfahrung zu bieten. Die einzige Schwergewichtskomponente (vom Betriebssystem bereitgestellt) ist der JFrame-Container, und der Rest wird so ziemlich vom Swing-Takedit übernommen. AWT hingegen fordert das Betriebssystem auf, alle UI-Komponenten zu zeichnen, was bedeutet, dass es in vielerlei Hinsicht schneller ist, als wenn Sie die systemeigenen UI-Komponenten verwenden. SWT versucht, einen Mittelweg zu finden. Für verschiedene Standardkomponenten wie Schaltflächen und Beschriftungen (die auf den meisten Betriebssystemen verfügbar sind) kann das Betriebssystem mit diesen umgehen, und für andere spezialisierte Komponenten übernimmt SWT die Erstellung für Sie.
Trotzdem kann ich die Nachteile skizzieren.
(1) Da das Toolkit die Komponenten für Sie erstellt und rendert, anstatt das Betriebssystem zu fragen, können Sie die Geschwindigkeit der vom Betriebssystem bereitgestellten integrierten Komponenten nicht nutzen.
(2) Die Benutzeroberfläche ist nicht besonders aufdringlich, da sie den meisten Betriebssystemplattformen in Bezug auf das von Ihnen verwendete Erscheinungsbild fremd erscheint.
(3) Einige der Layout-Manager, z. B. GridBadLayout usw., könnten besser vereinfacht werden. Ich habe die Anzahl der Projekte verloren, an denen ich gearbeitet habe, bei denen Leute das GridBagLayout in einen maßgeschneiderten Code verpackt haben, um eine einfachere Verwendung zu erhalten.
Ich würde Ihnen raten, eine einfache App in AWT, Swing und SWT zu schreiben und die Entwicklungsansätze und das Endprodukt zwischen allen zu vergleichen. Überprüfen Sie dann die verschiedenen Kommentare anderer Entwickler und entscheiden Sie, welche am besten funktioniert. Ich habe viele Jahre mit Swing gearbeitet und SWT nicht gemocht, aber mir wurde klar, dass Swing im Vergleich zu anderen Frameworks viel komplizierter ist, als es sein muss.
quelle
Swing ist langsam (schlechte Leistung), schwer / ungeschickt zu bedienen (im Vergleich zu vielen anderen) und sieht auf einigen Plattformen nicht sehr gut, ja sogar sehr schlecht aus.
quelle