我最近打算系统学习JavaFX,这个基于JVM的RIA框架.很多开发者选择Java进行Web开发和移动开发(如Android,BlackBerry,J2ME),JavaFX可能不如这两个应用热门.但我还是觉得学习Java都应该学习JavaFX,因此,我整理了一些关于JavaFX的要点,希望对入门JavaFX有所帮助.
JavaFX是什么?关于JavaFX需要了解什么?为什么应该学习JavaFX?
JavaFX是基于JVM框架,使用Java开发的RIA(富互联网应用)框架.JavaFX作为Java GUI框架Swing的后继者,相比Swing来说更为方便.JavaFX可以实现界面UI和后台代码的分离,使得代码更容易维护.JavaFX 1.0使用JavaFX Script作为UI脚本语言,2.0开始使用FXML作为脚本语言,FXML是基于XML的脚本语言,类似Adobe Flex的MXML和Silverlight的XAML.JavaFX不仅可以使用Java语言作为后台语言,还可以利用其它基于JVM的编程语言编写后台代码.JavaFX最初定位是成为和Adobe Flex,Silverlight,OpenLaszlo竞争的RIA技术.学习JavaFX对于Java开发者十分必要,因为现在的大多数应用都需要GUI界面,而JavaFX正好提供了强大的GUI组件,学好JavaFX还可以开发跨平台的应用以及网页游戏.
JavaFX是跨平台的,可以运行于哪些平台?
JavaFX可以运行于桌面,Web前端及移动平台.
桌面:JavaFX可运行于Windows,Mac OS和Linux等操作系统.
Web前端:JavaFX可以像Flash,Silverlight一样,通过JNLP插件插入网页前端,和JavaScript交互.
移动平台:JavaFX Mobile可运行于移动平台.同时可以参考JavaFXPorts(http://gluonhq.com/open-source/javafxports/)
JavaFX可以用哪些编程语言编写后台代码?
JVM编程语言,或者编译到Java的编程语言,如B4J,都可以开发JavaFX应用.
Java 7/Java 8:一般通用的JavaFX开发环境.
Kotlin:可以使用KotlinFX(https://github.com/eugenkiss/kotlinfx/wiki)和TornadoFX(https://github.com/edvin/tornadofx)开发JavaFX应用.
Scala:使用ScalaFX(http://www.scalafx.org/)开发JavaFX应用.
Groovy:使用GroovyFX(http://groovyfx.org/)或Griffon(编译到JavaFX,http://griffon-framework.org/).
Ceylon:使用CeylonFX(https://github.com/renatoathaydes/CeylonFX).
Jython:使用基于JVM的Python语言开发JavaFX应用(这篇问答帖可以参考https://community.oracle.com/message/10374411)
JRuby:基于JVM的Ruby语言(https://github.com/jruby/jrubyfx)
Mirah:一种类似Ruby的JVM语言,可用于开发JavaFX应用(https://github.com/shannah/mirah-nbm/blob/master/docs/MavenJavaFXExample.md)
Frege:一种类似Haskell的JVM语言(https://github.com/Frege/FregeFX)
Xtend:一种面向对象的JVM语言(https://github.com/svenefftinge/xtendfx)
Visage:一种为JavaFX设计的编程语言(https://github.com/visage-lang/visage-javafx)
Fantom:一种跨平台且支持JVM的编程语言(http://fantom-lang.org/)
Clojure:函数式编程语言(https://github.com/zilti/clojurefx)
Haxe:跨平台的编程语言,支持Java,理论上应该可以开发JavaFX应用,有待验证.(https://haxe.org/)
B4J:使用类似Basic的语言开发JavaFX应用.(https://www.b4x.com/b4j/help/jfx.html)
Eta:一种函数式编程语言(https://github.com/typelead/eta)
JavaFX怎样嵌入到网页?
JavaFX可以通过JNLP插件嵌入到网页中,可以参考这篇问答:
Embed a JavaFX application in a HTML webpage(https://stackoverflow.com/questions/27958019/embed-a-javafx-application-in-a-html-webpage)
JavaFX怎样和Swing交互?
将JavaFX应用嵌入到Swing应用中(https://docs.oracle.com/javase/8/javafx/interoperability-tutorial/swing-fx-interoperability.htm)
将Swing应用嵌入到JavaFX中
(https://docs.oracle.com/javafx/8/embed_swing/jfxpub-embed_swing.htm)
JavaFX怎样和JavaScript交互?
JavaScript访问JavaFX应用
(https://docs.oracle.com/javafx/2/deployment/javafx_javascript.htm)
在JavaFX中调用JavaScript代码
(https://docs.oracle.com/javase/8/javafx/embedded-browser-tutorial/js-javafx.htm)
总结
以上就是入门JavaFX所需要了解的要点.希望能有更多从事Java开发的朋友能加入到JavaFX开发者的行列中来,也希望JavaFX能够越来越好.
领取专属 10元无门槛券
私享最新 技术干货