{"id":1106,"date":"2011-08-30T20:08:57","date_gmt":"2011-08-30T18:08:57","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/2011\/08\/was-ist-javafx\/"},"modified":"2011-08-30T20:08:57","modified_gmt":"2011-08-30T18:08:57","slug":"was-ist-javafx","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2011\/08\/was-ist-javafx\/","title":{"rendered":"Was ist JavaFX?"},"content":{"rendered":"<p>AWT und Swing sind bisher die Standardl\u00f6sungen f\u00fcr grafische Anwendungen unter Java. AWT bildet das Fundament mit Ereignisbehandlung, Fenster-Management und einer m\u00e4chtigen 2D-API. Swing sitzt auf dem AWT und ist eng mit ihm verbunden. Es realisiert die Komponenten, die zum Teil selbst in Java implementiert sind, manch ein Look and Feel \u2013 wie im Fall von Windows \u2013 l\u00e4sst die Komponenten nativ vom Betriebssystem zeichnen.<\/p>\n<p>Swing und AWT sind m\u00e4chtig, aber es hat sich in den Letzen Jahren nicht gro\u00dfartig weiterentwickelt. Insbesondere gibt es L\u00fccken im Bereich Medien und Animation, etwas, was bei modernen grafischen Oberfl\u00e4chen heutzutage gefragt ist. Statt das Sun\/Oracle in die Weiterentwicklung investiert, hat sich das Unternehmen f\u00fcr eine komplette Neuentwicklung der GUI-Ebene entschieden, die nichts mehr mit Swing\/AWT gemeinsam hat: JavaFX.<\/p>\n<p>JavaFX ist eine Komplettl\u00f6sung mit einer API f\u00fcr<\/p>\n<p>\u00b7 GUI-Komponenten<\/p>\n<p>\u00b7 HMTL\/CSS\/JavaScript mit eingebetteten Web-Brower<\/p>\n<p>\u00b7 Animationen<\/p>\n<p>\u00b7 Video<\/p>\n<p>\u00b7 Audio<\/p>\n<p>\u00b7 2D und 3D<\/p>\n<p>Da JavaFX komplett alle APIs f\u00fcr moderne Oberfl\u00e4chen anbietet, und auch nicht von AWT\/Swing abh\u00e4ngig ist, bildet JavaFX einen kompletten Media-Stack. Die Betonung liegt auf Media, denn die AWT\/Swing-API im Java SE kann keine Medien einbinden oder abspielen. Zwar ist JavaFX auch noch kein Teil der Java SE, doch das kann sich \u00e4ndern. \u00dcber Profile sollte JavaFX auch auf mobilen Endger\u00e4ten und im Internet wie Applets laufen, allerdings ist eher davon auszugehen, das JavaFX es bei Rich-Client-Anwendungen Einzug h\u00e4lt und dort AWT\/Swing verdr\u00e4ngt. Es ist nicht abzusehen, dass JavaFX im Internet als Flash-Ersatz oder auf mobilen Endger\u00e4ten punkten kann, daf\u00fcr ist die Kombination HTML5 + CSS3 + JavaScript zu attraktiv.<\/p>\n<p>Anders als AWT ist die JavaFX-Implementierung auf der H\u00f6he der Zeit und greift direkt auf alle 2D\/3D-F\u00e4higkeiten moderner Grafikkarten zur\u00fcck. So kann mit JavaFX alles das programmiert werden, was bisher eher mit Flash gemacht wurde, wohl aber fehlen noch die tollen Entwicklertools. Es gibt Plugins f\u00fcr Adobe Photoshop und Illustrator, mit denen Grafiken und Pfade exportiert werden k\u00f6nnen, aber eben keine ganzen Animationen, die etwa mit Adobe Flash erzeugt wurden. Und seit dem Adobe Flash auch HTML5 exportiert, \u00f6ffnet sich eine ganz neue Welt.<\/p>\n<p>&#160;<\/p>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"656\">\n<p>Geschichte<\/p>\n<p>JavaFX ist schon sehr lange in Entwicklung und viele interne Swing-Entwickler wurden auf das Projekt angesetzt \u2013 daran liegt es wohl auch, dass bei Swing nicht mehr passierte. Im Jahr 2003 wurde JavaFX dann auf der SunOne Konferenz vorgestellt, zusammen mit der Programmiersprache Java FX Script. Die Sprache macht es einfach m\u00f6glich hierarchische Objektgrafen aufzubauen, und bot eine nette Syntax f\u00fcr Objekt-Bindung, doch wurde sie f\u00fcr die aktuelle Version JavaFX 2.0 fallen gelassen. Oracle wollte keine weitere Programmiersprache, sondern eine pure Java API, die sich von unterschiedlichen existierenden Skriptsprachen dann ansprechen kann. Das ist sicherlich eine gute Entscheidung, denn unter Groovy sieht das sehr schlank aus, fast wie mit JavaFX Script auch (http:\/\/groovy.codehaus.org\/GroovyFX).<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>AWT und Swing sind bisher die Standardl\u00f6sungen f\u00fcr grafische Anwendungen unter Java. AWT bildet das Fundament mit Ereignisbehandlung, Fenster-Management und einer m\u00e4chtigen 2D-API. Swing sitzt auf dem AWT und ist eng mit ihm verbunden. Es realisiert die Komponenten, die zum Teil selbst in Java implementiert sind, manch ein Look and Feel \u2013 wie im Fall [&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-1106","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\/1106","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=1106"}],"version-history":[{"count":0,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1106\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=1106"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=1106"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=1106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}