Istnieje wiele frameworków GUI dla java, ale co uznaje się za dzisiejszy wybór ram?
Oto moje rozumienie różnych ram, proszę mnie poprawić, jeśli się mylę. Jest to bardzo luźno zdefiniowany zestaw pytań, ale nadal uważam, że jest cenny dla każdego, kto myśli o tworzeniu bogatych aplikacji GUI.
Jest to podstawa swingu, działa dobrze, ale brakuje mu zaawansowanych komponentów. Jeśli zamierzasz tworzyć bogate aplikacje, AWT prawdopodobnie nie jest dobrym rozwiązaniem. Jednak w przypadku mniejszych aplikacji GUI, które nie wymagają bogatych interfejsów użytkownika. Może to idealnie pasować, ponieważ jest to wypróbowana i sprawdzona platforma.
Na podstawie AWT, jak stwierdzono wcześniej. W początkowym okresie był uważany za powolny i błędny i spowodował, że IBM stworzył SWT dla Eclipse. Jednak w Javie 5 (lub 6?) Swing stał się preferowanym narzędziem do tworzenia nowych aplikacji. Huśtawka ma wiele bogatych komponentów, ale wciąż brakuje jej w niektórych obszarach. Jednym z przykładów jest to, że nie ma w pełni funkcjonalnego komponentu TreeTable, który mógłby sortować i filtrować / wyszukiwać.
Stworzone przez IBM dla Eclipse, wydawało im się, że Swing nie był wtedy odpowiedni dla Eclipse. Sam w sobie jest dość niskim poziomem i korzysta z natywnych widgetów platformy za pośrednictwem JNI. Nie ma to wcale związku z Swingiem i AWT. Ich interfejs API jest jednak nieco niezręczny i nie intuicyjny. Mają pewne zaawansowane komponenty, takie jak TreeTable. (ale nie sądzę, że obsługują sortowanie i filtrowanie po wyjęciu z pudełka). SWT korzysta z niektórych rodzimych powiązań (przez JNI?), A w Internecie istnieje rant, że nie należy używać tych ram w dzisiejszych projektach. (Dlaczego nie?)
Oparty na Swing, a jego misją jest tworzenie bogatych komponentów do swing. Wciąż w fazie rozwoju. (niezbyt aktywne). Mają bardzo ładny zestaw komponentów, takich jak na przykład TreeTable. Ale TreeTable nie obsługuje filtrowania i sortowania, o ile wiem. Obsługuje jednak wyszukiwanie z podświetlaniem.
Zauważ, że SwingX to komponenty (AFAIU), które są rozszerzeniami lub kompozycjami istniejących komponentów Swing
JGoodies
Ramy, o których nic nie wiem ... Jakie są mocne i słabe strony? Jaki zestaw Jgoodies oprócz reszty?
JGoodies OTOH dotyczy PLAF i układów.
Najnowszy flagowy produkt Java / Oracle. obiecując, że stanie się faktycznym standardem w tworzeniu bogatych aplikacji komputerowych lub internetowych.
Renderuje interfejs użytkownika za pomocą Java2D, minimalizując w ten sposób wpływ (IMO, wzdęty) dziedzictwo Swinga i AWT. (@Augustus Thoo)
Wydaje się, że koncentruje się głównie na RIA (bogate aplikacje internetowe), ale wydaje się, że można go również zastosować do aplikacji komputerowych. I jako osobisty komentarz, wygląda bardzo interesująco! Szczególnie podoba mi się to, że jest to projekt apache.
https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html
Opakowanie java do natywnej biblioteki qt napisanej w c / c ++. Bardzo potężny, szeroko stosowany i akceptowany. Ma wiele komponentów GUI i łatwy w użyciu interfejs API.
Więc, aby podsumować trochę tego, o co proszę:
Powiedzmy, że chciałem dziś stworzyć aplikację komputerową w Javie, która zawiera wiele zaawansowanych komponentów, co powinienem wybrać? I dlaczego?
Który z tych ram należy uznać za przestarzały, a który jako ramy odległej przyszłości?
Co to jest dzisiejszy de facto standardowy framework i jakich narzędzi używasz do tworzenia aplikacji GUI Java?
Żałuję, że o to pytam, ale i tak spróbuję:
Mówi się, że C # /. Net ma bardzo dobry zestaw łatwych w użyciu komponentów, które można wyginać w każdym możliwym kierunku. Po zbadaniu różnych frameworków Java do pewnego stopnia nie mogę powiedzieć tego samego o Javie. Dlaczego to? Dlaczego java (który jest najczęściej używanym językiem programowania na świecie) nie ma tego samego zestawu komponentów GUI?
Czy to po prostu, że Java oparła komponenty GUI na znacznie niższym poziomie i można napisać te wszystkie zaawansowane komponenty, których szukam, ale sam musisz wykonać wiele, jeśli nie całą pracę?