Użyłem Java Swing do niektórych aplikacji komputerowych. Ale nie używałem tak często innych frameworków GUI, więc nie mogę ich porównać.
Jest pewne rzeczy, które lubię w Swing, a niektóre nie lubię, ale taka jest sytuacja z prawie wszystkim.
Jakie są największe wady struktury Java Swing GUI?
frameworks
gui
swing
Jonas
źródło
źródło
Odpowiedzi:
Musisz mieć gdzieś zainstalowaną Javę. Dotyczy to oczywiście wszystkich frameworków GUI, ale java postrzega goryla o wadze 2 ton. Robiło się lepiej, ale te wczesne dni apletów Java wyłączyły wiele osób. Jeśli potrzebujesz go tylko do uruchomienia jednej aplikacji, utrzymanie jej na bieżąco dzięki łatkom bezpieczeństwa i tym podobnym wymaga wielu czynności konserwacyjnych. Każdy musi mieć Flash dla youtube, .NET Framework instaluje się za kulisami i wszyscy mają włączoną obsługę javascript w swojej przeglądarce. Java jest zwykle dodatkową rzeczą do zrobienia.
Mimo, że jest to coś do jednokrotnego zapisu, uruchamiania w dowolnym miejscu, wciąż okazuje się, że Mac OSX nie ma tej nowej wymyślonej rzeczy, której chcesz użyć, lub jeden klient odmawia uaktualnienia systemu Linux mandrake w stosunku do JRE 1.4.
Jako twórca musisz pomyśleć o wątkach. I jest to trudne, ponieważ wielowątkowość jest możliwa, ale huśtawka udaje, że wszystko jest jednowątkowe. Ale wtedy połowa bibliotek, które pobierasz, ma pewien stopień wielowątkowości i zakłada, że wiesz o wywołaniu EDT Później i wymusza to wiele lekcji na ciężko.
Swing Experience nie przenosi się łatwo na inne rodzaje rozwoju interfejsu użytkownika. Na przykład, jeśli jesteś świstem przy stołach w .css, zostaniesz całkowicie zaskoczony przez Jtables, renderers, edytorów itp.
Ogólnie rzecz biorąc, głównym problemem związanym ze Swingiem jest to, że nie spełniał wymagań rynku. Jest to całkowicie odpowiednia technologia dla wielu przypadków użycia, ale te pierwsze 5 lub 6 lat były pełne okropnych wdrożeń i okropnych apletów. A teraz jest to stara technologia do Web 3.0 lub cokolwiek innego.
To powiedziawszy, lubię Swinga i myślę, że profesjonaliści przeważają nad wadami, kiedy potrzebujesz tego, co oferuje. Jednak wrażenia internetowe są tak wszechobecne, że wielu użytkowników będzie miało łatwiejszy czas z aplikacją internetową niż najbardziej usprawniona niesamowita aplikacja swing. Istnieją niesamowite aplikacje Swing, ale nie wydają się być głównym nurtem.
źródło
Jonas,
Swing uogólnia architekturę bazową, aby zapewnić użytkownikom neutralne dla platformy wrażenia. Jedynym ciężkim komponentem (dostarczanym przez system operacyjny) jest kontener JFrame, a resztą zajmuje się Swit takeit. Z drugiej strony AWT prosi system operacyjny o narysowanie wszystkich składników interfejsu użytkownika, co oznacza, że jest szybszy na wiele sposobów, niż przy użyciu natywnych składników interfejsu użytkownika specyficznych dla systemu operacyjnego. SWT stara się osiągnąć środek, dla różnych standardowych komponentów, takich jak przyciski i etykiety (które są dostępne w większości systemów operacyjnych), pozwala systemowi operacyjnemu sobie z nimi poradzić, a dla innych specjalistycznych komponentów SWT zajmie się tworzeniem dla ciebie.
To powiedziawszy, mogę nakreślić wady.
(1) Ponieważ zestaw narzędzi tworzy i renderuje komponenty dla ciebie, zamiast pytać system operacyjny, nie możesz skorzystać z szybkości wbudowanych komponentów zapewnianych przez system operacyjny.
(2) Interfejs użytkownika nie jest szczególnie atrakcyjny, ponieważ wydaje się być obcy dla większości platform OS pod względem wyglądu i sposobu użytkowania.
(3) Niektóre z menedżerów układu, np. GridBadLayout itp., Mogłyby być lepiej uproszczone. Straciłem rachubę liczby projektów, nad którymi pracowałem, w których ludzie otoczyli GridBagLayout jakimś niestandardowym kodem, aby uzyskać prostszy sposób korzystania z niego.
Radzę napisać prostą aplikację w AWT, Swing i SWT i porównać podejścia programistyczne do końcowego produktu między nimi wszystkimi, a następnie przejrzeć różne komentarze innych programistów i zdecydować, który z nich będzie najlepszy. Pracuję z Swingiem od wielu lat i nie lubiłem SWT, ale zdałem sobie sprawę, że Swing jest o wiele bardziej skomplikowany, niż powinien być w porównaniu z innymi platformami.
źródło
Swing jest wolny (słaba wydajność), trudny / niezdarny w użyciu (w porównaniu do wielu innych) i na niektórych platformach nie wygląda bardzo dobrze, aw rzeczywistości bardzo źle.
źródło