如果您没有听说过,JavaFX 2是Java的新Desktop / web / client框架。 自JavaFX 1以来,它已经进行了相当大的改动(坦率地说,效果并不那么令人印象深刻)。 自定义脚本语言已经淘汰了,您可以使用标准Java和基于XML的语言来编写实际的UI演示文稿。
因此,今天,我和一个朋友在我们的一个地方聚在一起,教自己一点JavaFX。 这是我们学到的东西,首先要做一些牛削皮工作:
- 首先,安装JavaFX开发人员预览– 在此处获取
- 您必须将其解压缩,然后将生成的目录放置在合理的位置,以root命名。
- 我把它放在
/usr/local/javafx-sdk2.1.0-beta/
- 接下来,您将需要一个IDE与之配套
- Netbeans是JavaFX 2中最先进和可用的IDE
- 您想要Netbeans 7.1 RC2
- 要将其安装在Mac上,您需要JavaForMacOSX10.7.dmg –官方Apple Java的较低版本都不能使用,并且OpenJDK构建也不起作用(即使它是正确的版本或更高的版本)
- 安装完成后,Netbeans可以与其他JRE正常工作(我主要是在Java 7 Developer Preview上运行它)
- 要启动新的JavaFX项目,您需要告诉NetBeans在哪里可以找到JavaFX。 为此,您需要创建一个新的JavaSE平台概要文件,并手动添加JavaFX依赖项。
安装后,我们便开始正确使用JavaFX。 我们今天的项目是尝试在JavaFX中复制Victor Grazi的一些并发动画,既可以自学JavaFX技术,又可以创建一些教学工具作为输出。
- JavaFX使用Application作为主要类进行子类化
- API文档在这里
如果您完成了任何Flex开发,JavaFX看起来将非常自然。 例如
- FXML文件提供UI和布局
- 顶级FXML元素具有
fx:controller
属性,该属性定义了此View的Control - FXML元素绑定到控制器类中包含的成员,这些成员已使用
@FXML
注释进行了注释 -
fx:id
属性用于定义绑定到FXML元素的成员的名称 - 绑定也发生在方法上。 例如,按钮绑定使用
onAction
处理程序,例如:onAction="#isFutureDone"
-
#methodName
语法用于说明按下按钮时应调用哪种方法。
由此,您很容易开始构建基本应用程序。 我们发现了一些东西:
- UI线程很容易绑定。 永远不要直接从Control对象调用阻塞方法,因为在UI线程上触发此代码路径将导致显示器挂起。
- 小心吞咽异常。
- 如果对象中有一个方法正在更新UI元素,但未使用
@FXML
注释,则更新后似乎需要在UI元素上调用requestLayout()
。 我们不确定为什么要深入了解-如果您知道原因,请告诉我们。 - 该框架似乎使用自定义类加载将FXML文件转换为对象的“场景图”,似乎有点像Spring的工作方式。
总体而言,我们的简短hack会议给我们留下了深刻的印象。 这些API看起来很干净,框架的总体设计也很合理。 存在一些稳定性问题,但这是Mac上的尖端技术-JDK和JavaFX运行时都是Developer Previews。
我们一定会再次使用JavaFX做更多的事情,并期待看到它成熟并成为Java客户端开发的完全受支持的OSS框架。
参考: 我今天从我们的JCG合作伙伴 Martijn Verburg在Java 7开发人员博客 中学到的关于JavaFX的知识 。
相关文章 :
- 从JavaFX 1.3迁移到JavaFX 2.0
- JavaFX 2.0 beta示例应用程序和思考
- JavaOne正在重建动力
- 有时在Java中,一个布局管理器是不够的
翻译自: https://www.javacodegeeks.com/2012/01/what-i-learnt-about-javafx-today.html