快速业务通道

JavaFX Script高级特性 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
} let percent = bind stock.getPercent(); System.out.println(percent); stock.currentValue = 101; System.out.println(percent);

上面介绍了 JavaFX Script 语言本身的一些高级特性,下面将以实例的方式讨论 JavaFX Script 开发中的几个重要的主题。

创建复杂用户界面

用过 Swing 的人可能都有个感觉,那就是用 Swing 创建用户界面的时候,不仅编写起来麻烦,代码也比较冗长。使用 JavaFX Script,可以帮助你更快更简单的创建用户界面。 JavaFX Script 简化用户界面的创建的能力主要体现在三个方面:

声明式创建图形用户界面(GUI)组件 程序员可以在代码中以声明的方式编写 GUI 组件,这些 GUI 组件的层次结构就反映了实际的用户界面的布局。声明式的方式大大减少了创建用户界面所需要的代码量。程序员只需要看到代码的组织结构,就可以想象出实际的运行效果。 数据绑定和增量式求值 数据绑定和增量式求值使得组件的创建和配置变得更加容易,应用本身的数据和 GUI 组件可以自动同步。比如在用户界面上有个标签(javafx.ext.swing.Label)用来显示雇员的名字,只需要将标签的 text 属性绑定到雇员数据的 name 属性上。当雇员数据发生变化的时候,该标签会自动更新。 触发器 触发器使得当某个属性的值发生变化的时候,可以执行相应的处理逻辑。这非常类似 Java Bean 中的 PropertyChangeListener 和 PropertyChangeEvent 的组合。但是触发器的创建和使用更加简单。

在 JavaFX Script 中使用 Swing 的 GUI 组件是很容易的。 JavaFX Script 在 javafx.ext.swing 包中提供了很多常用的 Swing 组件的封装。这些组件可以在 JavaFX Script 代码中直接以声明式的方式使用。另外一些复杂的组件,如 JTable 和 JTree,目前在 JavaFX Script 中还不可以直接使用。在这种情况下,需要继承 javafx.ext.swing.Component 类并实现该类的抽象方法 createJComponent()。该方法返回一个 JComponent 对象。

下面以一个具体的实例来说明如何创建复杂用户界面。该应用是一个 RSS 订阅源(Feed)的阅读器,它可以解析 OPML 文件并在左侧以一个树形结构来显示所有的订阅源。当点击某个订阅源时,可以在右侧看到该订阅源的内容。显示所有订阅源的是左侧的 OmplViewer,显示订阅源内容的是右侧的 FeedViewer。该应用的截图见 图 1。

图 1. RSS 订阅源阅读器

JavaFX Script高级特性 - 编程入门网

由于 RSS 订阅源阅读器的代码比较多,在本文中将只介绍其中的重点,完整的代码请 下载。

JavaFX Script高级特性(4)

时间:2011-02-12 IBM 成富

继承javafx.ext.swing.Component

在上面提到,一些复杂的 Swing 组件,目前需要通过继承 javafx.ext.swing.Component 的方式来使用。在 RSS 订阅源阅读器中,左侧显示所有订阅源的组件是 JTree。类 OpmlViewer 继承自 javafx.ext.swing.Component,并实现其createJComponent()方法,该方法创建了一个JTree 对象,并包装在一个 JScrollPane 中。该类中的其它代码都与 JTree 对象交互。具体见 代码清单 8。

清单 8. 继承 javafx.ext.swing.Component 示例

public class OpmlViewer extends Component {   private attribute tree : JTree;   protected function createJComponent(): JComponent {      tree = new JTree();     return new JScrollPane(tree);   } }

触发器的使用

类 OpmlViewer 有一个属性 opmlFilePath 用来表示 OPML 文件的路径。当该属性的值发生改变的时候,OpmlViewer 就需要显示该 OPML 文件中的所有订阅源。这是通过在属性 opmlFilePath 上创建一个触发器来实现的。具体见 代码清单 9。

清单 9. OpmlViewer 中的触发器使用

public attribute opmlFilePath : String on replace   oldPath

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号