{{ !articles[0].partner.isSponsoringArticle ? "Platinum" : "Portal" }} Partner

Why JavaFX is Intriguing for Java Developers

  1. Java FX Script is consistent: everything is an expression. Knowing that helps a lot.

  2. Additional access modifiers (script-only, public-read, public-init) allow leaner approaches for building, not only visual, components.

  3. The "skeleton" of a Java FX application is the scene graph. It is a tree structure starting with stage, scene, and has nodes as leaves. It  represents a platform independent model of any visual application. You could actually map this "meta-tree" to any technology you want. I believe this exactly happens in the desktop and mobile profiles (requires further investigation :-)).

  4. There is no additional ceremony required to call Java objects: it is straight forward. Existing Java code can be easily reused.

  5. RESTful (JSON/XML) communication is supported out-of-the-box.

  6. The "bind" operator enables building of lean Model View Presenter (Passive View / Supervising Controller) applications with clean seperation of concerns. Modification of variables and even functions are tracked directly, without implementing PropertyChangeListeners etc.

  7. Triggers killed getters and setters. You can expose attributes directly and intercept the calls when needed.

  8. Java FX Script is perfectly suitable for building casual and not only "flashy" applications. The majority of Swing components are already exposed to Java FX script.

  9. Domain specific extensions like the duration datatype or frame-based animation framework make the development of animations easier.

  10. Java FX Script integrates very well with applets and webstart. It is a natural extension of Java-based RIAs. The idea of dragging an applet out of the browser and installing it as an application is simple, but really good :-).

From http://www.adam-bien.com/roller/abien/entry/java_fx_script_and_why

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks