Frage von OSMANII, 44

JavaFX Programm starten?

Hallo Community,

Ich versuche mich gerade in JavaFX, habe also noch keine guten Erfahrungen. Kann mir jemand den Code schicken, denn man einbinden muss, damit das Fenster überhaupt aufgeht?

Vielen Dank an alle.

LG OSMANII

Expertenantwort
von KnusperPudding, Community-Experte für Java, 26

Deine Klasse muss von Application erben(extends Application).

Wodurch du dazu gezwungen wirst:

public void start(Stage primaryStage) {
}

zu implementieren.

Um ein Fenster sichtbar zu machen benötigst du eine Root-Komponente. 

Beispielsweise ein AnchorPane.

Diese Komponente übergibst du einer Scene. - Welche du wiederum deiner Stage mitgibst, die du sichtbar machst:

AnchorPane root = new AnchorPane();
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();

Die Anwendung startest du via Main Methode durch das Aufrufen von launch

public static void main(String[] args) {
    launch(args);
}


Antwort
von kingbongo, 21

Gehört zwar nicht direkt zum Thema aber ich wollte nur mal kurz anmerken das JavaFX eine tote (bzw absterbende) Technologie ist (es gibt bessere Alternativen die es verdrängt haben), also bevor du dich dort hineinhängst kannst du ja mal hinterfragen ob es noch Sinn macht sich darin einzuarbeiten.


Kommentar von KnusperPudding ,

Das ist doch völliger Quatsch. JavaFX wird stets aktuell gehalten, ist modern, flexibel und für heutige Bedürfnisse mehr als innovativ.

Bitte unterlasse solche Kommentare, wenn du keine Ahnung hast.

Kommentar von kingbongo ,

Deswegen war der letzte stable release 2014,  oracle  macht keinerlei Ankündigung zu javafx und selbst die eigene community sagt das es keine zukunft hat. .. Sagen wir mal so: das teil ist im künstlichen Koma und wartet darauf erlöst zu werden. Ich kann dich als die-hard fan verstehen das du dich gekränkt fühlst, aber Nostalgie kennt der Computer nicht und es kann auch nicht jeder mit der Fortschritts-Karavane mitziehen. 

Kommentar von androhecker ,

Hast du eigentlich nichts besseres zu tun, als hier zu verbreiten, dass jedes Java Framework Discontinued wäre? JavaFX 8 ist erst der Anfang, mit Java 9 werden einige neue Funktionen hinzukommen und die jetzigen sind auch schon ausreichend. Bloß weil Java einen langen Release Zyklus hat, ist es auch nicht beendet. Es hat schon immer einige Jahre gedauert bis die neue Java SE Version gekommen ist, da sind 2 Jahre nicht viel. Es kommen aber auch immer neue Updates zu Java 8 und falls es dir nicht aufgefallen ist, ist fast jedes Mal ein Patch für JFX dabei. Welche Alternative soll den bitte JFX verdrängt haben? JFX war noch nie auf dem Thron der Java GUI Frameworks und kann somit auch nicht verdrängt worden sein.

Kommentar von kingbongo ,

Und hast du nix besseres zu tun als Technologien welche im künstlichen Koma liegen und eine medizinische Grundversorgung bekommen, als "next big thing" zu beweihräuchern? Meinetwegen könnte ihr gerne auf tote Pferde setzen während die Karavane weiterzieht, ist mir doch egal, aber selbst bei Oracle sind solche Charts bekannt:

google.de/trends/explore#q=javafx%2C%20angular

Kommentar von androhecker ,

Soll das ein Witz sein? Angular hat nichts mit GUI Frameworks und schon gleich drei Mal nichts mit Java zu tun. JavaFX ist nur noch nicht so gut angekommen, weil es etwas spät kam, trotzdem ist es ein gutes Framework mit viel Potential. Problem sind hauptsächlich Hochschulen und Bücher, die immer noch Swing benutzen. Bei Java EE hast du das gleiche behauptet, wofür du jedoch keinen einzigen Beweis anführen konntest. Hier sehe ich auch nur eine nicht aussagekräftiges Diagramm.

Kommentar von kingbongo ,

Wenn Angular kein GUI Framework sein soll, was ist es denn dann?

Kommentar von androhecker ,

Angular ist ein JS Framework und hat sehr wenig mit den GUI Frameworks zu tun, weshalb es auch nicht so genannt wird. Mal ganz nebenbei verfolgt es ein ganz anderes Konzept. Man kann JavaFX mit Swing, Qt oder GTK+ vergleichen, aber nicht mit Angular, das sind zwei verschiedene Welten.

Kommentar von kingbongo ,

Doch klar kann man das vergleichen, es trifft genau in die gleiche Nische, aber Angular in kombination mit Electron fegt JavaFX, Qt und den ganzen anderen Mist weg. Deswegen ist es auch so beliebt, ausser bei den Ewiggestrigen.

Kommentar von androhecker ,

Wenn du Qt als Mist bezeichnest, hast du wirklich keine Ahnung, das ist so ziemlich das schnellste und funktionsreichste GUI Framework, das es gibt. Entweder hast du nie Qt getestet oder willst es nicht einfach nur nicht einsehen. HTML, CSS und JS sind einfach nicht für große Desktopprogramme geeignet, weil sie zu langsam sind.

Kommentar von kingbongo ,

Für 99% aller Desktopanwendungen die eh aus paar Eingabefelder bestehen reicht es mehr als aus. Zudem ist wirklich Platformunabhängigkeit ohne sich so eine Pest wie die JVM installieren zu müssen. 

Kommentar von androhecker ,

Und mit welchen Kosten? Man muss das gesamte Framework in jedes Programm klatschen, in Java reicht es, wenn man es einmal installiert hat. 99% der Desktopanwendungen sind auch total irrelevant, so ziemlich alle relevanten Programme wie zB Gimp sind mit einem richtigen GUI Framework wie GTK+ geschrieben, für den Rest kann man dann auch gleich das entsprechende Framework nehmen. Zudem ist Qt genauso plattformunabhängig wie Electron, mit dem Unterschied, dass die Programme spürbar kleiner sind.

Kommentar von kingbongo ,

Im Jahr 2016 sollte es wohl keine Probleme mehr geben wenn ein Programm paar bytes mehr hat. Speicher kriegt man an jeder Ecke hinterhergeworfen. Zudem ist QT programmierung viel zu umständlich und dauert wesentlich länger als wenn man das gleiche in Electron programmiert. 

Keine passende Antwort gefunden?

Fragen Sie die Community