JavaFX GUI - Entscheidung über Framework

ChrisMS

Mitglied
Hallo,
ich möchte nach langer...wirklich langer Zeit mal wieder ein kleines Java-Programm schreiben.
Es soll Text aus einer PDF lesen und mit dem Inhalt einer CSV Datei vergleichen und grafisch darstellen. Zunächst als Desktop-Variante. Eine Mobile-Variante ist derzeit nicht geplant.

Da sich ja in den letzten Jahren einiges geändert hat, habe ich mir mal versucht einen kleinen Überblick zu verschaffen. Wenn ich das richtig verstanden habe, ist JavaFX ja das aktuelle Framework (berichtigt mich falls ich falsch liege).
Dinge die mir noch nicht ganz klar sind:
- Macht ein anderes Framework mehr Sinn?
- JavaFX ist nicht an NetBeans gebunden, oder?
- Wäre die GUI mit JavaFX tauglich für Mobile Variante?
- HTML5 ist nur mit JavaEE nutzbar, oder?

gruss
Chris
 

Kababär

Top Contributor
JavaFX ist mittlerweile Bestandteil des JDK.

Mit JavaFX kannst du auch GUIs für mobile Geräte basteln, dazu findet man auch im Internet einiges.

Zu HTML5 kann ich dir so jetzt nichts zu sagen, aber denke, dass es nur Sinn macht, wenn man einen Websocket oder ähnliches hat.

In JavaFX kann man allerdings auch HTML-Seiten darstellen (dazu gibt es einen speziellen Container, lege dir SceneBuilder zu, falls das noch nicht passiert ist).
 

dennisbauer

Aktives Mitglied
Aktueller State of the Art ist in der Tat für Desktopanwendungen JavaFX zu verwenden. Viele Unternehmen setzen viel darauf, ihre alten Swing-Anwendungen auf FX zu portieren, weil die Entwicklungszeiten damit wesentlich beschleunigt werden.

Zum Thema FX und Mobile hilft dir folgendes vllt. weiter: http://gluonhq.com/labs/javafxports/

Ansonsten gibt es zur Darstellung von HTML die WebView in JavaFX, die mit einem eigenen Renderer das ganze darstellen kann. Auch kannst du mithilfe der nashorn Engine Javascript ausführen.

Das Zusammenspiel zwischen JavaFX-Umgebung und zur Javascript-Umgebung ist zwar möglich, es ist aber sehr komplex, da Interaktionen vollführen zu können.

Andere Frameworks im Desktop-Bereich gibt es zwar, aber FX ist mittlerweile so stark ausgereift und bringt so viele Vorteile, dass es keinen Sinn mehr gibt, andere Frameworks in Betracht zu ziehen.
 

dzim

Top Contributor
BTW: Ich baue gerade eine Andwendung mit JavaFXPorts (also u.A. JavaFX auf mobilen Geräten). Bei Fragen kannst du gerne auf mich zu kommen (vor allem was Performance angeht - das ist noch etwas heikel!)

Generell muss man sagen, das es *IMHO* nur zwei noch sinnvolle Java-basierte UI-Frameworks gibt. Das wäre zum einen JavaFX und wie schon gesagt ist es State-of-the-Art, aber nicht ganz frei von Ecken und Kanten. Auch scheint das Commitment seitens Oracle im Moment eher unbefriedigend zu sein - leider. Zum anderen gibt es hier noch SWT, welches ein Interface für ein systemspezifisches Natives Framework ist (Cocoa auf Mac OS, win32 auf Windows (leider kein WPF mehr und erst recht kein Modern UI), sowie GTK2/3 auf Linux). Gutes Layouting, aber etwas angestaubte API, wird aber - da es die Basis für Eclipse ist - weiterhin aktiv gepflegt.
https://www.eclipse.org/swt/

Java im Backend, also zum Beispiel für Web-Seiten, ist nicht allein auf JavaEE beschränkt. Du kannst dort auch andere Frameworks, wie Ratpack oder vert.x (beide Reactive Frameworks), oder Spring (Boot) verwenden. Du hast da sprichwörtlich die freie Wahl.
https://ratpack.io/
http://vertx.io/
https://projects.spring.io/spring-boot/ (schneller Start mit dem SPRING INITIALIZR)

Auch beim Web-Frontend nur an HTML5 (also HTML+JavaScript+CSS) zu denken, wäre etwas kurz gedacht. Es gibt noch immer Vaadin (Server-Side, Single-Page, geschrieben in Java) oder - wer sich da ran traut - auch noch GWT (Vaadin basiert meines Wissens darauf). Und es gibt da (immer noch) RAP - ähnlicher Ansatz wie Vaadin, aber leider eher schlecht dokumentiert. Und wie viele es wirklich verwenden: Keine Ahnung.
https://vaadin.com/home
https://www.eclipse.org/rap/

(Desktop) UIs kannst du natürlich auch mit anderen Frameworks schreiben. Mir fällt da spontan Electron ein, das im Moment etwas gehypted zu sein scheint. Andere Varianten hier: http://stackoverflow.com/questions/...ng-html5-applications-as-desktop-applications

Mobile UIs: Wie ausgereift es ist, weiss ich nicht (ich vermute etwa so sehr wie JavaFXPorts), aber es gibt noch Tabris.JS (Native UIs in JavaScript geschrieben):
https://tabrisjs.com/
http://eclipsesource.com/blogs/ (dort wird ab und an darüber gebloggt, da es dort entwickelt wird)
Offenbar schickt sich Tabris.JS auch an, Windows 10 UWP zu unterstützen:
http://eclipsesource.com/blogs/2016/11/03/tabris-js-windows-10-beta-program/
https://msdn.microsoft.com/en-us/windows/uwp/layout/design-and-ui-intro
 

ChrisMS

Mitglied
Hallo,

danke für eure Antworten. dzim hat mich zwar ein wenig erschlagen, aber jede Hilfe ist willkommen. Kakabärs Tipp mit dem Scene Builder hat für den Einstieg schon geholfen.
Bei Youtube habe ich mir dazu noch ein paar Videos angeschaut wie ich die GUIs dann mit den Eclipse verknüpfe und habe jetzt schon ein erstes Ergebnis.
Irgendwie komme ich gerade einem zum anderen.Von Generics auf ObserverLists auf PDFBox-Api auf Event-Handler auf StringProperty auf auf auf....
Habe z.B. aktuell noch leichte Handhabungsprobleme Probleme mit solchen Verschachtelungen
private TableColumn<ObservableList<StringProperty>, String> createColumn(
final int columnIndex, String columnTitle)
aber das ist einfach Übungssache.
Sollte dennoch jemand eine gut Lektüre zu den ObservableList und Generics als Rückgabewerte kennen, gerne her mit dem Link.


Hatte mir mal dieses Beispiel angeschaut und auch auf meine Bedürfnisse so anpassen können, dass eine CSV Datei ausgelesen und in eine Tabelle geschrieben wird. Das ich Events in JavaFX jetzt in (Background-)Jobs packen muss, erleichtert die Verständlichkeit solcher Beispiele zunächst nicht ;-)

Aktuell bastel ich gerade daran Daten von einer Tabelle in die andere mittels Drag&Drop übertragen zukönnen. Muss man auch erstmal verstehen in welchen Eventhandler was rein muss.

gruss
Chris
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I JTextfield senden über Enter AWT, Swing, JavaFX & SWT 1
T Scene wechseln über ManuItem AWT, Swing, JavaFX & SWT 7
I JavaFX - Pane wechseln über 2. Controller AWT, Swing, JavaFX & SWT 5
melaniemueller Layout wechseln über RadioButtons AWT, Swing, JavaFX & SWT 4
melaniemueller Verschiebung eines Fensters über Button AWT, Swing, JavaFX & SWT 27
A Swing ProgressBar über 2 parallel laufende Threads AWT, Swing, JavaFX & SWT 2
A Layoutwechsel über RadioButtons AWT, Swing, JavaFX & SWT 3
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
missy72 JavaFX Performance / ImageView in TableView über TimeLine AWT, Swing, JavaFX & SWT 1
T TableView über Methode befüllen AWT, Swing, JavaFX & SWT 10
J Spielfelder auch über die Tastatureingabe (1…9) ansteuern (Tic Tac Toe) AWT, Swing, JavaFX & SWT 2
M Eine Datei auf den Apache Server hochladen - über das Menü im JavaProgramm AWT, Swing, JavaFX & SWT 7
C Swing Aufruf der Funktion (die ein Dialog anzeigt) über Symbol anzeigen lassen AWT, Swing, JavaFX & SWT 4
G LayoutManager Panels anordnen über Schleifenvariablen AWT, Swing, JavaFX & SWT 7
F Verzeichnis über GUI erstellen AWT, Swing, JavaFX & SWT 2
T GUI über Tastatur bedienen AWT, Swing, JavaFX & SWT 3
OSchriever Layout über Radiobuttons ändern AWT, Swing, JavaFX & SWT 4
L JavaFX TreeView Edit Mode über F2 AWT, Swing, JavaFX & SWT 13
J Schriftart über einen Button ändern AWT, Swing, JavaFX & SWT 1
CptK Swing DropdownMenu über Panel-Grenzen hinaus anzeigen AWT, Swing, JavaFX & SWT 1
A 2D-Grafik Zeichen werden über unabhängingen JRadioButton nicht gefüllt AWT, Swing, JavaFX & SWT 28
S JavaFX Fenster aufkommen lassen, wenn mit der Maus über bestimmten Bereich fahren AWT, Swing, JavaFX & SWT 1
I Bild über FXML (ImageView, Image) anzeigen AWT, Swing, JavaFX & SWT 1
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
C JavaFX ScrollPane schießt über das Ziel hinaus... AWT, Swing, JavaFX & SWT 1
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
R Ausgabe über JOptionPane.showMessageDialog funktioniert nicht AWT, Swing, JavaFX & SWT 2
L JavaFX button über andere Klasse ändern AWT, Swing, JavaFX & SWT 7
K über Button andere Java Klasse aufrufen AWT, Swing, JavaFX & SWT 15
T .jar-Datei lässt sich unflexibler ausführen als über die IDE AWT, Swing, JavaFX & SWT 11
C Applet Zeichnen über Button-Click AWT, Swing, JavaFX & SWT 13
L JavaFX Hover Effekt über das Parent Element AWT, Swing, JavaFX & SWT 4
A Swing Gemaltes Bild über saveDialog speichern unter AWT, Swing, JavaFX & SWT 15
L Dynamischer Aufbau einer Tabelle über Objekte AWT, Swing, JavaFX & SWT 2
N JButton über benutzerdefinierte paintComponent setzen AWT, Swing, JavaFX & SWT 3
S AWT Daten über TextField und Button in array speichern AWT, Swing, JavaFX & SWT 5
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
Augenblau JavaFX Externe Schriftart über CSS ansprechen und zuweisen AWT, Swing, JavaFX & SWT 5
T Generische Klasse in JList über DefaultListModel AWT, Swing, JavaFX & SWT 1
Z JAVAFX Stage über Controller weitergeben um css-file zu laden AWT, Swing, JavaFX & SWT 4
Z Absolutes Layout / Kontrolle über Anordnung AWT, Swing, JavaFX & SWT 3
wolfgang63 JavaFX Zugriff auf Guiobjekte die über FXML erstellt wurden AWT, Swing, JavaFX & SWT 2
O JTextfield wird über'drawed'.. AWT, Swing, JavaFX & SWT 6
K JavaFX Fenster aufrufen über Menü AWT, Swing, JavaFX & SWT 1
J JTable aktuallisieren über anderen Frame AWT, Swing, JavaFX & SWT 6
kaoZ Swing JFrame lässt sich nicht über dispose() abbauen AWT, Swing, JavaFX & SWT 0
P Vorteile von Tooltip nutzen (wird über allen anderen Objekten angezeigt) AWT, Swing, JavaFX & SWT 3
elischa JFrame über mehrere JPanel und Listener AWT, Swing, JavaFX & SWT 17
B Swing Borderlayout East über North AWT, Swing, JavaFX & SWT 5
D Swing Letzte Zeile einer JTable nicht über RowSorter sotieren AWT, Swing, JavaFX & SWT 2
C Methode über Buttonklick starten AWT, Swing, JavaFX & SWT 8
P Swing Panel-austausch über einen MenuListener AWT, Swing, JavaFX & SWT 2
M JLabel über JButtons zeichnen AWT, Swing, JavaFX & SWT 4
P Swing Button über gesamtes Panel AWT, Swing, JavaFX & SWT 2
3 JDialog über einem Vollbildfenster anzeigen AWT, Swing, JavaFX & SWT 5
K GUI Elemente über eine separate Textdatei beschriften? AWT, Swing, JavaFX & SWT 4
A Bild über Imageviewer auf GUI anzeigen AWT, Swing, JavaFX & SWT 3
K 2D-Grafik Kontrastanpassung über einen JSlider AWT, Swing, JavaFX & SWT 2
G JScrollPane über JScrollPane AWT, Swing, JavaFX & SWT 2
L Button über/auf JTextField AWT, Swing, JavaFX & SWT 5
A Swing JTable wird nicht über zurückegebene Referenz geaddet.Wieso nicht? AWT, Swing, JavaFX & SWT 5
D JTextField über ein Game AWT, Swing, JavaFX & SWT 11
K Action Listener implementieren über Objekt AWT, Swing, JavaFX & SWT 14
bluerob Fehler bei Wertübermittlung über KeyListener AWT, Swing, JavaFX & SWT 3
R JTextField mit abgerundeten Ecken - Geht über Grenze hinaus AWT, Swing, JavaFX & SWT 4
S JDialog direkt über dem MainFrame aufpoppen lassen AWT, Swing, JavaFX & SWT 2
X Swing Panel Extra Klasse & Aufruf über Button AWT, Swing, JavaFX & SWT 18
J Frame mit Button erstellen - Warum ist es nötig, Frame über Unterklasse zu erstellen? (Reg Listener) AWT, Swing, JavaFX & SWT 2
P versch. JPanel Klassen über Menü öffnen AWT, Swing, JavaFX & SWT 12
P Öffnen, Speichern von Dat. über DialogBoxen AWT, Swing, JavaFX & SWT 10
R Bewglichen Rahmen über einem Bild AWT, Swing, JavaFX & SWT 3
P Listenelemente über Checkbox löschen AWT, Swing, JavaFX & SWT 6
H Swing "Drag and Drop" eines JComponent über ein JPanel AWT, Swing, JavaFX & SWT 2
S SWT Anzeigen einer lokalen HTML-Seite im Browser Widget über RAP nicht möglich AWT, Swing, JavaFX & SWT 3
D Label über JScrollPane AWT, Swing, JavaFX & SWT 3
M TextArea über mehrere Zeilen - wie Zeileanzahl abfragen? AWT, Swing, JavaFX & SWT 5
C Linien über GridLayout zeichnen AWT, Swing, JavaFX & SWT 3
S JDialog über Applet AWT, Swing, JavaFX & SWT 3
K Swing JButton über JLabel AWT, Swing, JavaFX & SWT 6
S AWT Skalieren von Polygon über Area klappt nicht AWT, Swing, JavaFX & SWT 4
C Etwas durchsichtig machen über einem Panel AWT, Swing, JavaFX & SWT 7
L LayoutManager Componenten über verfügbaren Platz strecken AWT, Swing, JavaFX & SWT 7
C Java-applikation über Fullscreen AWT, Swing, JavaFX & SWT 4
F Panels über buttons zu anderen Panels hinzufügen AWT, Swing, JavaFX & SWT 2
S JTable Filter nach Wort oder Wortteil über ganze Tabelle AWT, Swing, JavaFX & SWT 5
M Hover-Farbe über Hintergrundfarbe legen AWT, Swing, JavaFX & SWT 3
A Swing Gleichmäßige Verteilung der Tabellenzeilen über den gesammten Tabellenbereich AWT, Swing, JavaFX & SWT 5
S JButton und textfield.setText - Komponenten über-/verdecken sich AWT, Swing, JavaFX & SWT 15
S JButton -> Text über Icon AWT, Swing, JavaFX & SWT 4
P Swing Componente über Rahmen hinaus zeichnen AWT, Swing, JavaFX & SWT 2
K JButton nur dann aktivieren, wenn die Mouse 3 Sek. über dem Button bleibt AWT, Swing, JavaFX & SWT 2
B JFrame: Benachrichtung über Größenänderung AWT, Swing, JavaFX & SWT 4
J Schließen über x soll zwei Prozesse beenden AWT, Swing, JavaFX & SWT 7
S Drag and Drop über 2 Panels AWT, Swing, JavaFX & SWT 2
D Grafik über JPanels hinweg verschieben AWT, Swing, JavaFX & SWT 2
B Text soll nich über das Frame hinausgehen AWT, Swing, JavaFX & SWT 5
R 2D-Grafik Messdiagramm - Diagramm über Zeit AWT, Swing, JavaFX & SWT 5
GianaSisters Swing ComboBox im jTable (in bestimmter Zelle nicht über die ganze Spalte) AWT, Swing, JavaFX & SWT 4
P Swing JPanel über Methode setzen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben