{"id":4722,"date":"2025-08-23T11:44:54","date_gmt":"2025-08-23T09:44:54","guid":{"rendered":"https:\/\/www.tutego.de\/blog\/javainsel\/?p=4722"},"modified":"2025-08-23T11:45:04","modified_gmt":"2025-08-23T09:45:04","slug":"inselupdate-ueber-javafx","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2025\/08\/inselupdate-ueber-javafx\/","title":{"rendered":"Inselupdate: \u00dcber JavaFX"},"content":{"rendered":"<p class=\"MsoNormal\">Swing (genauer gesagt die Java Foundation Classes) ist zwar hinreichend m\u00e4chtig, hat sich aber in den vergangenen Jahren fast gar nicht weiterentwickelt; moderne GUI-Komponenten, erweiterte Medienunterst\u00fctzung und Animationen fehlen weitgehend. Anstatt die betagten JFC weiter auszubauen, entschied sich Sun\/Oracle f\u00fcr eine komplette Neuentwicklung der GUI-Ebene, die unabh\u00e4ngig von AWT\/Swing ist: JavaFX.<\/p>\n<h3>F\u00e4higkeiten von JavaFX<\/h3>\n<p class=\"MsoNormal\">JavaFX bietet:<\/p>\n<p class=\"Listeunnummeriert\" style=\"margin-left: 17.85pt; text-indent: -17.85pt; mso-list: l0 level1 lfo1; tab-stops: list 17.85pt;\"><!-- [if !supportLists]--><span style=\"font-size: 8.0pt; mso-bidi-font-size: 12.0pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; color: black;\"><span style=\"mso-list: Ignore;\">\u00a7<span style=\"font: 7.0pt 'Times New Roman';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><!--[endif]-->Benutzeroberfl\u00e4chen-Komponenten (Buttons, Listen, Tabellen, Men\u00fcs \u2026)<\/p>\n<p class=\"Listeunnummeriert\" style=\"margin-left: 17.85pt; text-indent: -17.85pt; mso-list: l0 level1 lfo1; tab-stops: list 17.85pt;\"><!-- [if !supportLists]--><span style=\"font-size: 8.0pt; mso-bidi-font-size: 12.0pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; color: black;\"><span style=\"mso-list: Ignore;\">\u00a7<span style=\"font: 7.0pt 'Times New Roman';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><!--[endif]-->Eingebettete Web-Inhalte (Integration von HTML\/CSS\/JavaScript \u00fcber eine Browser-Komponente)<\/p>\n<p class=\"Listeunnummeriert\" style=\"margin-left: 17.85pt; text-indent: -17.85pt; mso-list: l0 level1 lfo1; tab-stops: list 17.85pt;\"><!-- [if !supportLists]--><span style=\"font-size: 8.0pt; mso-bidi-font-size: 12.0pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; color: black;\"><span style=\"mso-list: Ignore;\">\u00a7<span style=\"font: 7.0pt 'Times New Roman';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><!--[endif]-->Animationen und Effekte (z. B. \u00dcberg\u00e4nge, Timeline-Animationen)<\/p>\n<p class=\"Listeunnummeriert\" style=\"margin-left: 17.85pt; text-indent: -17.85pt; mso-list: l0 level1 lfo1; tab-stops: list 17.85pt;\"><!-- [if !supportLists]--><span style=\"font-size: 8.0pt; mso-bidi-font-size: 12.0pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; color: black;\"><span style=\"mso-list: Ignore;\">\u00a7<span style=\"font: 7.0pt 'Times New Roman';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><!--[endif]-->Multimedia-Unterst\u00fctzung (Einbindung und Wiedergabe von Video und Audio)<\/p>\n<p class=\"Listeunnummeriert\" style=\"margin-left: 17.85pt; text-indent: -17.85pt; mso-list: l0 level1 lfo1; tab-stops: list 17.85pt;\"><!-- [if !supportLists]--><span style=\"font-size: 8.0pt; mso-bidi-font-size: 12.0pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; color: black;\"><span style=\"mso-list: Ignore;\">\u00a7<span style=\"font: 7.0pt 'Times New Roman';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><!--[endif]-->Grafik in 2D und 3D (inkl. 3D-Objekte, Kameras und Beleuchtung)<\/p>\n<p class=\"MsoNormal\">JavaFX ist unabh\u00e4ngig von AWT\/Swing und bildet einen vollst\u00e4ndigen Media-Stack f\u00fcr Java-Oberfl\u00e4chen. Es nutzt direkt die 2D-\/3D-Hardwarebeschleunigung moderner Grafikkarten, sodass auch grafisch anspruchsvolle Anwendungen m\u00f6glich sind.<\/p>\n<h3><a name=\"_Ref196989844\"><\/a>Die Geschichte von JavaFX: JavaFX 1, JavaFX 2, JavaFX 8, OpenJFX<\/h3>\n<p class=\"MsoNormal\">Urspr\u00fcnglich plante Sun\/Oracle, JavaFX als direkten Flash-Ersatz f\u00fcr Web-Anwendungen zu etablieren. Doch bereits ab 2010 machte die Kombination aus <i style=\"mso-bidi-font-style: normal;\">HTML5 + CSS3 + JavaScript<\/i> diese Idee obsolet \u2013 f\u00fcr Rich Internet Applications erwies sich der offene Web-Standard als attraktiver. JavaFX entwickelte sich stattdessen zu einer GUI-Bibliothek f\u00fcr klassische Desktop-Anwendungen, mit der Option, auch auf mobile Endger\u00e4te zu gelangen. Viele der urspr\u00fcnglichen Swing-Entwicklungsteams bei Sun\/Oracle wechselten in das JavaFX-Projekt, w\u00e4hrend Swing nur noch mit Bugfixes gepflegt wurde.<\/p>\n<p class=\"MsoNormal\">Wesentliche Meilensteine:<\/p>\n<p class=\"Listeunnummeriert\" style=\"margin-left: 17.85pt; text-indent: -17.85pt; mso-list: l0 level1 lfo1; tab-stops: list 17.85pt;\"><!-- [if !supportLists]--><span style=\"font-size: 8.0pt; mso-bidi-font-size: 12.0pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; color: black;\"><span style=\"mso-list: Ignore;\">\u00a7<span style=\"font: 7.0pt 'Times New Roman';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><!--[endif]--><b style=\"mso-bidi-font-weight: normal;\">2007\/2008<\/b>: JavaFX wurde 2007 auf der JavaOne-Konferenz erstmals vorgestellt. Ende 2008 erschien JavaFX 1.0 als erstes Release, begleitet von der neuen Skriptsprache <span class=\"Begriff\">JavaFX Script<\/span>, die eine einfache Erstellung hierarchischer Objektgraphen und ein komfortables Binding von Objekteigenschaften erm\u00f6glichte.<\/p>\n<p class=\"Listeunnummeriert\" style=\"margin-left: 17.85pt; text-indent: -17.85pt; mso-list: l0 level1 lfo1; tab-stops: list 17.85pt;\"><!-- [if !supportLists]--><span style=\"font-size: 8.0pt; mso-bidi-font-size: 12.0pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; color: black;\"><span style=\"mso-list: Ignore;\">\u00a7<span style=\"font: 7.0pt 'Times New Roman';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><!--[endif]-->Im Oktober <b style=\"mso-bidi-font-weight: normal;\">2011<\/b> folgte JavaFX 2.0 als gro\u00dfer Umbruch. Dabei wurde JavaFX Script ersatzlos gestrichen \u2013 Oracle wollte keine weitere eigene Sprache pflegen, sondern eine reine Java-API anbieten, die auch von anderen JVM-Sprachen aus genutzt werden kann. Die JavaFX-API \u00e4nderte sich mit Version 2 ebenfalls, sodass bestehender Code migriert werden musste. Seitdem gilt JavaFX 1 (und die Literatur dazu) als veraltet.<\/p>\n<p class=\"Listeunnummeriert\" style=\"margin-left: 17.85pt; text-indent: -17.85pt; mso-list: l0 level1 lfo1; tab-stops: list 17.85pt;\"><!-- [if !supportLists]--><span style=\"font-size: 8.0pt; mso-bidi-font-size: 12.0pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; color: black;\"><span style=\"mso-list: Ignore;\">\u00a7<span style=\"font: 7.0pt 'Times New Roman';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><!--[endif]-->Im August <b style=\"mso-bidi-font-weight: normal;\">2012<\/b> integrierte Oracle JavaFX 2.2 direkt in Java SE (JDK\/JRE 7 Update 6). Erstmals wurde damit ein so gro\u00dfes Modul au\u00dferhalb eines Major Releases dem JDK hinzugef\u00fcgt \u2013 ein deutliches Signal, dass JavaFX zum festen Bestandteil der Plattform werden sollte.<\/p>\n<p class=\"Listeunnummeriert\" style=\"margin-left: 17.85pt; text-indent: -17.85pt; mso-list: l0 level1 lfo1; tab-stops: list 17.85pt;\"><!-- [if !supportLists]--><span style=\"font-size: 8.0pt; mso-bidi-font-size: 12.0pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; color: black;\"><span style=\"mso-list: Ignore;\">\u00a7<span style=\"font: 7.0pt 'Times New Roman';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><!--[endif]--><b style=\"mso-bidi-font-weight: normal;\">2014<\/b>: Mit Java 8 hielt JavaFX 8 Einzug. Dieses Release baute JavaFX weiter aus und brachte unter anderem eine verbesserte 3D-Grafikunterst\u00fctzung (z.\u00a0B. 3D-Objekte und -Beleuchtung) mit, was die M\u00f6glichkeiten f\u00fcr Visualisierungen erweiterte.<\/p>\n<p class=\"Listeunnummeriert\" style=\"margin-left: 17.85pt; text-indent: -17.85pt; mso-list: l0 level1 lfo1; tab-stops: list 17.85pt;\"><!-- [if !supportLists]--><span style=\"font-size: 8.0pt; mso-bidi-font-size: 12.0pt; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings; color: black;\"><span style=\"mso-list: Ignore;\">\u00a7<span style=\"font: 7.0pt 'Times New Roman';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><!--[endif]-->Seit Java 11 (<b style=\"mso-bidi-font-weight: normal;\">2018<\/b>) ist JavaFX nicht mehr Teil des offiziellen JDK. Oracle hat die Technologie aus der Java-SE-Plattform herausgel\u00f6st und den Quellcode vollst\u00e4ndig als Open Source im Projekt <span class=\"Begriff\">OpenJFX<\/span> (<span class=\"URL\">https:\/\/openjfx.io\/<\/span>) ver\u00f6ffentlicht. OpenJFX wird seither als eigenst\u00e4ndiges Modul gepflegt und \u00fcber Maven Central oder SDK-Bundles bereitgestellt..<\/p>\n<p class=\"MsoNormal\">Die Pflege und Weiterentwicklung liegen heute in den H\u00e4nden der OpenJFX-Community, zu der auch Unternehmen wie <span class=\"Begriff\">Gluon<\/span> (<span class=\"URL\">https:\/\/gluonhq.com\/<\/span>) beitragen. Gluon stellt kommerzielle Support-Angebote bereit und entwickelt Werkzeuge sowie Mobile-Ports (iOS, Android), sodass JavaFX nicht nur auf dem Desktop (Windows, macOS, Linux), sondern auch auf mobilen Plattformen eingesetzt werden kann.<\/p>\n<p class=\"MsoNormal\">JavaFX spielt seine St\u00e4rken insbesondere in Nischenanwendungen aus, etwa bei wissenschaftlichen Visualisierungen, industrieller Software, Lehrzwecken oder Rich-Client-Anwendungen.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Swing (genauer gesagt die Java Foundation Classes) ist zwar hinreichend m\u00e4chtig, hat sich aber in den vergangenen Jahren fast gar nicht weiterentwickelt; moderne GUI-Komponenten, erweiterte Medienunterst\u00fctzung und Animationen fehlen weitgehend. Anstatt die betagten JFC weiter auszubauen, entschied sich Sun\/Oracle f\u00fcr eine komplette Neuentwicklung der GUI-Ebene, die unabh\u00e4ngig von AWT\/Swing ist: JavaFX. F\u00e4higkeiten von JavaFX JavaFX [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11],"tags":[],"class_list":["post-4722","post","type-post","status-publish","format-standard","hentry","category-insel"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=4722"}],"version-history":[{"count":2,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4722\/revisions"}],"predecessor-version":[{"id":4724,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4722\/revisions\/4724"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=4722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=4722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=4722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}