Input: Welches Java UI-Framework verwenden

  • Hallo zusammen


    Ich bin etwas in der Sackgasse gelandet. Ich möchte ein Java Projekt realiseren (Chatserver mit Clienten) und für den Client brauch ich eine UI, welche in Java geschrieben werden kann. Nun dachte ich an folgende Ui Frameworks:


    • AWT (Alt, aber native Design. Jedoch würde man mich glaub dafür totschlagen)
    • Swing (Eigentlich featuremässig passend, sieht aber auch mit LAF immer noch aus wie aus dem vorletzten Jahrtausend, zudem möcht ich mich nicht zwingend mit Swing-Layouts rumschlagen müssen - auch mit Window Builder Pro ist es immer noch eine verdammte Pain)
    • JavaFX (Passend, jedoch keine MessageBox, recht modern, der JFXPackager bietet geile Optionen, zum Beispiel zu einer .exe oder .deb Package packen und das JRE integrieren (nur die benötigten Teile). Aber wie gesagt, in gewissen Teilen Featurelack)
    • SWT (Intuitives Design, etwas kompliziert, aber recht logisch wenn man es einmal gesehen hat - krasser Featurelack (ohne JFace), aber einer der Favoriten da native UI Design. Man muss für jede Plattform und Architektur eine Lib mitliefern, was aber kein KO Grund ist)


    Kennt jemand noch weitere ? Ich bin mit JavaFX recht gut ausgekommen, aber das hat keine native MessageDialog und das ist in meiner Applikation ein No-Go. Selber schreiben - naja wofür braucht man dann ein Framework ? Ich will schlussendlich nicht auf 31 verschiedene Jar Libs zurückgreifen müssen. Wär ich nicht an Java gebunden würd ich in C++ das Qt Framework verwenden und hätte mit Abstand alle Sachen in super Qualität und native Design - aber in Java ist es so mühsam.


    Hat jemand einen Input ? Gebräucht werden würden vor allem SplitPane, Borderlayout, Dialog, MessageBox, Menu & MenuItems und Container.


    Gruss

  • Ich bin mir ein einheitliches Framework gewöhnt. An Swing sind mir einige Sachen nicht ganz klar: AWT ist ein heavyweight System und stellt Komponenten zur Verfügung, welche auf ALLEN Zielplattformen funktionieren (Sprich ein gemeinsamer Nenner). Bei Swing handelt es sich aber mehr oder weniger (!) um ein lightweight System, welches dann aber auf AWT basiert - warum wird man nicht gleich komplett unabhängig.


    Versteh mich nicht falsch, aber mir geht auch die Mischung aus Swing, SwingX und AWT auf die Nerven (Darum auch die Aussage im Endeffekt irgendwelche 30 verschiedene Imports zu haben).


    Betreffend Aussehen: Ich bin mir natives UI Design gewöhnt und bin der Meinung, das macht normalen Usern auch am wenigsten Mühe (Stichwort Benutzerfreundlichkeit) und ich finde, dies erreicht Java auch mit dem SystemLookAndFeel noch nicht wirklich.


    Schlussendlich wirds wohl auf Swing rauslaufen, MIgLayout werde ich höchstwahrscheinlich eh einsetzen, evt mal wegen JGoodies schauen, aber das wird sich zeigen ;)

  • Naja, Unterschiede sind erstmal, dass es "lightweight" ist, AWT erweitert und eben besser anpassbar ist.
    Ich hab bisher eher wenige Anwendungen mit GUI umgesetzt, ich bin eher jemand der alles via Console macht .. :D


    Warum nimmst du statt Server/Client nicht einfach IRC? Einen eigenen Clienten könntest du dir immer noch schreiben. Oder ist dir IRC schon zu umfangreich?
    EDIT: Und welches Protokoll überhaupt?

  • Es geht darum, eine komplette Server-Client Architektur selber zu schreiben (Einen IRC Client habe ich schon in C++ , für ein solches Projekt vergewaltige ich nicht ein Java UI Framework sondern verwende gleich Qt - da hab ich meine GridLayouts mit RowSpan/ColSpan, DockWidgets, WebView mit vollen Zugriff und vieles, vieles mehr, zudem habe ich native Design)


    Oder meinst Du gleich einen IRC Server nach RFC 1459 Standard ?

  • Also einen Server nach RFC Standard selber zu schreiben wäre unnötige Arbeit. Einfach UnrealIRCd nehmen, ist zwar in der Konfiguration sehr aufwändig, aber ich denke im Nachhinein doch performanter und vor allem umfangreicher als ein eigener Java basierter Chat Server. Falls es dann doch größer wird, kannst du dann ja auch ganz leicht neue Leafs aufsetzen.


    Oder geht es dir schlicht um die Umsetzung und nicht den Sinn? :)

  • Naja eigentlich ist es mehr ein Semesterprojekt für die Schule und ich habe keine Lust, irgendeine sau langweilige imaginäre Verwaltungssoftware für irgend nen imaginären Betrieb zu schreiben, mit welchem man imaginäre Daten verwaltet. Ich brauch einfach etwas, was nen Sinn dahinter hat.


    Der Client/Server stehen komplett, nur läuft noch alles über die Commandline, da ich mein PresentationLayer noch nicht fertig habe (Siehe Startpost) und eigentlich an diesem Layer hänge und kein zufriedenstellendes UI Framework finde...

  • Alternativ würd ich auf SWT mit JFace wechseln, dann hätte ich ein native UI (Wenn Du glaubst, Swing mit SystemLookAndFeel wäre nativ, dann guck dir mal ne JCheckBox an und vergleich zum Beispiel mit denen aus regedit.exe - dann siehste den Unterschied). Allerdings müsst ich dann viele Sachen selber schreiben, aber das ist es mir glaub wert...bin aber um weiteren Input immer froh ;)