Java: najlepsze GUI

0

Witam,
Dopiero wchodzę w Jave i zastanawia mnie następująca rzecz.

  1. Jakie jest najlepsze GUI? W przypadki C# jest to WPF, czyli oddzielenie logiki programu od wyglądu (w przeciwieństwie do Windows Forms). W C++ i Qt też stosuje się widgety bazujące na MVC co jest fajne.
  2. Czy brać Swing?
  3. Jakie jest najlepsze RAD dla Eclipse, coś w stylu Qt Creatora / Designera?

Pozdrawiam,

0

Bardzo rozwinięty jest aktualnie Swing, ale JavaFX stale zyskuje i to raczej ona jest przyszłością.
Designer dla Swing: WindowBuilderPro

0

Jeśli radzisz sobie z Qt możesz zainteresować się portem na Javę czyli http://qt-jambi.org/.

0

Czy JavaFX w stosunku do Swing to analogiczna sytuacja jak WPF do Windows Forms? Bo jeśli tak to raczej daruje sobie Swing i od razu pójdę w technolgie, która ma przyszłość. Czy JavaFX już posiada odpowiednie RAD dla eclipse?

Znalazłem jeszcze info, że jest Qt dla Javy, czyli Qt Jambi. Ale ja jakoś nie chcę wierzyć, że będzie to działać równie dobrze jak natywne biblioteki. A może jednak warto?

0

Do JavyFX 2 jest Scene Builder, który generuje FXMLa chyba; poza tym NetBeans jest na bieżąco ze wsparciem JavyFX 2.

W przypadki C# jest to WPF, czyli oddzielenie logiki programu od wyglądu (w przeciwieństwie do Windows Forms).

Niby w Windows Forms czy czymkolwiek innym nie da się zastosować MVC? Czy Windows Forms coś wymusza albo zabrania?

Bardzo rozwinięty jest aktualnie Swing, ale JavaFX stale zyskuje i to raczej ona jest przyszłością.

Sam Swing jest dość niewielki, podobnie JavaFX. Natomiast rozbudowane są frameworki czy platformy oparte o Swinga. JavaFX 2 z racji młodego wieku nie dorobiła się jeszcze takiej ilości bibliotek.

0

Niby w Windows Forms czy czymkolwiek innym nie da się zastosować MVC? Czy Windows Forms coś wymusza albo zabrania?

Z tego co słyszałem jest to mniej wygodne i właśnie dlatego powstała nowa biblioteka MFC, aby to ułatwić.

0

OK dziękuje, argument z duża ilością bibliotek zdaje się być dobry, aby brać Swing pod uwagę.

0

Napisałem coś głupiego, że powstała "nowa biblioteka MFC", miałem na myśli "nowa biblioteka WPF".

0

@Wibowit, w WPF kod jest w XAML i i nie używa się podczas tworzenia wyglądu w ogóle składni języka C#. Ponadto każdą kontrolkę można stylować według własnego uznania, a także łatwo przerabiać kontrolki (np jak masz listbox, to możesz zastosować ItemsPanel, WrapPanel, StackPanel, UniformGrid dla różnego wyświetlenia elementów). Ponadto animację robi się bardzo prosto (nie trzeba już wymyślać jakiś wątków by zrobić animację mouseover buttona. Fajne jest zagnieżdżanie kontrolek w kontrolkach, możliwość oddzielenia styli od kodu kontrolek.
Czy FX również poszło w tym kierunku?

Tak przy okazji, ciągle używasz słowa frameworki. Nie do końca rozumiem o co chodzi. Potrafię ogarnąć, co to jest FX, Swing, ale mówisz o frameworkach na tym opartych. Czy mógłbyś powiedzieć bardziej obrazowo o co chodzi?

0

Frameworki czy platformy (nie rozumiem różnicy w sumie :P) oparte o Swinga to np NetBeans Platform.

W JavieFX można zrobić interfejs w całości w FXML + CSS (wersja JavaFXowa), aczkolwiek nie trzeba. Można opisać interfejs w Javie czy dowolnym innym języku kompilowanym do bajtkodu, np Scali (http://code.google.com/p/scalafx/ - milion razy bardziej czytelna składnia niż XML). Powstał też język specjalizowany do opisu interfejsów w JavieFX: http://code.google.com/p/visage/ - dzięki specyficznym optymalizacjom (mechanika wiązań itp) wynikowy kod potrafi być momentami dużo bardziej efektywny (np 100x) niż kod Javowy czy Scalowy.

Ogólnie mam obrzydzenie do XMLa, kod Scalowy jest 100x bardziej czytelny. Zamiast tworzyć dziesiątki języków programowania opartych o XML (tak, dowolny język który można sparsować do postaci drzewa składniowego można zapisać jako XML) można przecież użyć jednego, czytelnego i z dobrym wsparciem IDE do refaktoryzacji.

Ponadto animację robi się bardzo prosto (nie trzeba już wymyślać jakiś wątków by zrobić animację mouseover buttona.

W JavieFX można animować dowolne property, a więc nie tylko pozycję, ale także kolor, zaokrąglenie rogów, przezroczystość, kształt, itp itd W WPF pewnie też.

Nadal nie odpowiedziałeś na pytanie:

Niby w Windows Forms czy czymkolwiek innym nie da się zastosować MVC? Czy Windows Forms coś wymusza albo zabrania?

OK dziękuje, argument z duża ilością bibliotek zdaje się być dobry, aby brać Swing pod uwagę.

Zależy jakich bibliotek. Spora ilość bibliotek powstała, by omijać ułomności i toporność Swinga w tworzeniu ładnie wyglądających interfejsów, wybranie JavyFX w takim przypadku jest lepszym wyborem. Natomiast jeśli chcesz zrobić skomplikowaną aplikację, ale bez wizualnych bajerów i chcesz użyć sprawdzonej platformy do tworzenia takich aplikacji, to polecam NetBeans Platform. Powstało w tym sporo aplikacji: http://netbeans.org/features/platform/showcase.html

0
Wibowit napisał(a):

W przypadki C# jest to WPF, czyli oddzielenie logiki programu od wyglądu (w przeciwieństwie do Windows Forms).

Niby w Windows Forms czy czymkolwiek innym nie da się zastosować MVC? Czy Windows Forms coś wymusza albo zabrania?

Nie zabrania, po prostu wiele osób nie wie, że można tworzyć samemu klasy i metody, więc pisze cały kod aplikacji w Form1.button1_Click.
W przypadku WinFormsów akurat bardziej naturalny wydaje mi się MVP niż MVC, ale może to po prostu kwestia przyzwyczajenia. Na pewno są w internecie frameworki MVC dla WinForms.

1 użytkowników online, w tym zalogowanych: 0, gości: 1