Javafx desktop framework

Kababär

Top Contributor
Hi,

ich suche ein gutes framework für Javafx im Desktop-Bereich, das mich bei der Programmierung unterstützt (Strukturierung, managen von Threads damit die GUI nicht hängt, einfaches Handling von mehreren Controllern und Views,..).
Hab bis jetzt Jacp und JRebirth auf dem Schirm. Afterburner.fx scheint etwas zu schmal zu sein.
Könnt ihr eins von beidem empfehlen oder sogar ein ganz anderes framework?
 

dzim

Top Contributor
Hm. Also ich Bau auf pures Java FX auf. Im Mobile Bereich nutze ich Afterburner.fx nur für dependency injection. Im desktop-Bereich dagegen Guice.

Mvvmfx scheint noch recht brauchbar zu sein, allerdings sind mir die Konventionen Teile zu strickt.
Noch strikter ist TornadoFX (Kotlin), das noch eine eigene DSL für GUIs mitbringt.

Allgemein nutzt man Tasks und Services (JavaFX concurrency package) für asynchrone Operationen. Liefern halt callbacks für fertige Arbeiten und so.
CompletableFuture bietet sich wohl auch an für reaktive Programmierung, habe ich aber noch nicht verwendet. Auch rxjava (FX) habe ich noch nicht gebraucht.

Ansonsten lässt sich JavaFX gut mit anderen Technologien vereinen. zB OSGi.

Hab mittlerweile schon wirklich viel damit gemacht, aber Frameworks, abseits der üblichen Verdächtigen... Nein.

Ach Spring Boot bietet sich auch noch an. Wenn man etwas längere Startzeiten akzeptiert.
Frag einfach konkret, was du brauchst, ich Versuch dann mal etwas aus meinem Hirn zu kramen.
 

dzim

Top Contributor
Gerade noch mal jrebirth angeschaut. Stimmt, das habe ich schon eine Weile auf dem Schirm gehabt. Aber leider nie ausprobiert. Tönt ein bisschen wie ein vereinfachtes osgi. Was jetzt nichts schlechtes heißen soll!
Probiere es doch mal aus und gib feedback!

BTW: wenn du Material Design magst: JFoenix... Und wenn es als Quelle für Ideen dient (ich habe mir darauf aufbauend eine lightweight-Dialog-API gebaut).
 

Kababär

Top Contributor
Die meisten "Frameworks" die du aufgelistet hast, habe ich nicht mal gefunden, aber werde mich da mal umsehen.

OSGi ist mir "noch" kein Begriff und habe ich mir noch nicht angesehen, da es für mein Verständnis in den "EE"-Bereich gehört (korrigier mich, falls ich da falsch liege).

Hauptsächlich suche ich einem Framework, das die Standardschritte automatisiert (also Einbinden von FXML und Controller in anderen Controller-Klassen, Laden von FXML, ..) und es wäre schön, wenn es die Funktionen oder Verwendbarkeit von Controls vereinfacht.
Bspw
. unterscheidet sich das Füllen einer TableView ja in den seltensten Fällen, wenn man komplette Objekte anzeigen will. Da wäre es z.B. schön, wenn man der TableView einfach das Objekt zuschickt und die TableView die Tabelle selbst aufbaut mit den Spalten, Listener, etc...
Die Steuerung einer TableView finde ich etwas seltsam bzw. nicht intuitiv: Man muss doppelklicken um einen Eintrag zu selektieren und ggf. zu ändern und dann Enter drücken, um die Neuerung zu speichern. Einfacher wäre: einmal klicken -> Eintrag editieren -> Enter oder Linksklick außerhalb der Bounds der Zelle um Eintrag zu speichern.

Und ich weiß zwar nicht, ob es so ein Framework gibt, aber es wäre toll wenn es möglich wäre, den FX-Thread immer am Leben zu erhalten, also dass er nicht einfriert, ohne dass man alles manuell in Background-Tasks abarbeiten lässt bzw. sich selbst um die Tasks oder Threads kümmern muss (Erstellen, warten auf Ergebnis) sondern wenn ich die Methoden einfach annotieren könnte, um zu sagen: "Hey, lass das im Hintergrund laufen..." oder "Mach mal und melde dich wenn du fertig bist".

Im Endeffekt will ich schneller an mein Ziel kommen ohne wirklich "imperativ" zu arbeiten, sondern würde gerne vieles "wrappen".
Zwar könnte ich mir diese Wrapper gut selbst schreiben, aber das würde relativ viel Zeit kosten und diese fehlt mir tatsächlich etwas.
Von daher wäre es schön, wenn es so was gäbe, aber wenn nicht, ist es jetzt auch nicht sooo schlimm, dann muss die Projektplanung etwas geändert werden.
 

dzim

Top Contributor
Nein. IMHO gibt es so etwas nicht.
OSGi geht mehr in Richtung Modularisierung. JRebirth wird dir wohl, wie Spring Boot (dass man explizit eben nicht nur für "EE" nutzen muss), Afterburner.fx, mvvmfx und TornadoFX (wo du eben Kotlin lernen musst) nur den Rahmen erstellen.
Bei Kotlin kannst du mit Kotlin 1.1 und dem entsprechenden Flags auch coroutinen schreiben, was einem ermöglicht, mehr oder weniger flüssig, nebenläufigen Kram zu schreiben, ohne explizit Threads etc. zu verwenden. Aber das gilt auch bei Javas internen CompletableFuture und RxJava(FX) - was eben reaktives Programmieren ermöglicht.
Mir ist sonst jedoch nichts genaueres bekannt.
 

Kababär

Top Contributor
Schade.
Modularisierung brauche ich nicht unbedingt, da das Projekt relativ übersichtlich ist und nur aus zwei "Logikbereichen" besteht.
Spring Boot ist generell für Webanwendungen, richtig? (Nur damit ich das richtig verstehe)

Ich gucke mir mal CompletableFuture an.
Und danke dir :)
 

dzim

Top Contributor
Ich zitier' mich mal selbst
Spring Boot (dass man explizit eben nicht nur für "EE" nutzen muss)
;)

Wir verwenden Hausintern eine Spring Boot-Anwendung, die in der ersten Iteration eine dauerhaft laufende "Konsolen"-Anwendung ist. Konkret ist sie eine arte "intelligenterer" Cron-Job und scheduled Aufgaben ein, die vorher Hardcoded im crontab standen. Da wir diese Jobs auf 10 Maschienen gleichzeitig machen und sie sich koordinieren sollen, verwenden sie einen Hazelcast-Cluster, dort liegen die Jobs und wer gerade Zeit hat, führt einen aus.

Erst vor kurzen aber fand ich es hilfreich, den einzelenen Instanzen noch einen Web-Server mitzugeben, um sie via ReST-Interface zu überwachen/managen.
Ich hab auch schon JavaFX-Anwendungen damit geschrieben. Spring Boot geht also für alles.
 

Kababär

Top Contributor
Muss mir mal ein paar tutorials zu Spring durchlesen. Das scheint auf den ersten Blick relativ viel zu sein (Spring Boot, MVC, Initializr, etc).

Hazelcast und Cron sagen mir nichts. Mit den Technologien bin ich noch nicht so vertraut. Klingt aber nach einem ExecutorService bzw Thread Pool Manager. Werde mir da gleich bisschen was zu durchlesen.

Denke ich werde das derzeitige Privatprojekt in FX fertig stellen und dann mal versuchen das nach Tomcat und JSF umzuschreiben. Erst mal noch das andere Problem lösen bevor es dann losgehen kann.
 

dzim

Top Contributor
Denke ich werde das derzeitige Privatprojekt in FX fertig stellen und dann mal versuchen das nach Tomcat und JSF umzuschreiben.
Willst du dir echt eine Web-GUI antun? ;-) Viel Spass dabei! :p
Wie gesagt: Spring Boot ist vielseitig und nicht auf Web-Anwendungen beschränkt.
Schau dir vielleicht kurz mein Repository mit ein paar Beispielen an:
https://github.com/bgmf/poc (Alle drehen sich irgendwie im JavaFX)
Vergiss Hazelcast erst einmal. Und Cron muss dir erst dann ein Begriff sein, wenn du mit Linux zu tun hast.
 

Kababär

Top Contributor
Ja wir haben gerade das Modul "Verteilte Anwendungen ". Ist super interessant. Natürlich programmieren wir da alles von Hand.
Hab mal bisschen weiter vorgeschaut und habe das Gefühl eher ein "Administrator für Config-Files und Herrscher der Annotations" sein zu müssen als wirklich ein Programmierer :D

Spring Boot Security ist interessant für mich für die Rollenvergabe innerhalb meiner Anwendung (je nach Rolle sollen gewisse Dinge nicht einsehbar oder gewisse Funktionen verfügbar sein).

Ansonsten wüsste ich mir derzeit Spring Boot nutzen könnte, aber ich schaue mir mal dein Repo an :)

Eigentlich mag ich Linux, aber denke wir sind mittlerweile keine Freunde mehr. "Er" hat was gegen meine hardware und so stabil laufen will es auch nicht. Schade eigentlich.
Aber ich kriege jedes System und Programm klein :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
thor_norsk JavaFX funktioniert nicht! IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
G JavaFX Installation IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
K Eclipse JAVAFX Fehler IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 14
A JavaFX in Eclipse einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 22
T Eclipse JavaFX Dokumentation Standort nicht gefunden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 11
M Eclipse - Fehlermeldung bei JavaFX-Projekt "java.lang.module.FindException: Module javafx.controls not found" IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 23
N Eclipse aus Java-Application JavaFX machenModule javafx.controls not found IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
1 Problem beim JavaFX installieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 20
OSchriever Eclipse: JavaFX mit JDK11 nutzen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
M Eclipse JavaFX JDK 12 - bekomme mein Projekt nicht mehr compiliert IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 36
J NetBeans gradle Projekt, unter neu keine Auswahl JavaFX IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
D JavaFX 12 / SDK 12 -> IntelliJ error IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
MiMa JavaFX in Netbeans 11 installieren? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 32
temi IDEA IntelliJ Gradle und JavaFX IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 15
M Eclipse JavaFX ohne e(fx)clipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
L NetBeans WARNING: JavaFX API 8.0.111 - JavaFX runtime 8.0.102 IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
D Eclipse JavaFX Plugin funktioniert nicht IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
n00b4u swing oder javafx IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 14
wolfgang63 NetBeans JavaFX Scenebuilder "Make Controller" geht nicht mehr IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
wolfgang63 BlueJ BlueJ und JavaFX Launcher Fehler IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
N Eclipse Maven , Javafx , SceneBuilder IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
M JavaFX-Plugin für Eclipse Juno IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
L javafx import in NetBeans IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
Ollek Eclipse Entwicklung von JSP/Servlets und Desktop Anwendungen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 11
M Eclipse Automatischer Restart für Desktop Apps? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
S NetBeans GUI Designer Desktop Applikation Grösse ändern IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
O Erfahrung mit Java Desktop ? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
K NetBeans Task selber schreiben und in Swing Application Framework einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
M SwingWeb Framework mit Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2

Ähnliche Java Themen

Neue Themen


Oben