读书人

FXML的include跟define标签(翻译)

发布时间: 2012-09-02 21:00:34 作者: rapoo

FXML的include和define标签(翻译)

【原文地址:http://blog.ngopal.com.np/2012/01/26/fxml-stuffs-include-and-define/】

今天我想在blog里谈一谈FXML的define和include标签,这两个标签对那些想在程序里使用FXML的人非常有用。FXML是一种XML文件,JavaFX用FXMLLoader来加载它。FXML文件在运行时被加载,并且很容易学习。前一篇blog里是一些关于FXML的基本介绍,今天这篇blog会教你如何在FXML文件里include另一个FXML。

先来看看<fx:include>标签,现在假设我们有两个FXML文件Main.fxml和Child.fmxl。

FXML的include跟define标签(翻译)

上图中你可以看到,Child.fxml在<fx:define>里被调用到Main.fxml中,<fx:define>被用来在FXML文件里定义变量或实例(variables or instances)。
来个实际的例子,我们写一个包含tab panel的例子,每个tab的内容都是从不同的FXML文件中读取。首先,我们定义包含TabPane的Main.fxml。

Main.fxml

你可以看到,<fx:define>引入了另外两个fmxl文件,Home和About,并且分别为他们定义了fx:id,后面我们在定义Tab的content属性时,直接引用了这两个id:$homeContent,$aboutConten。

现在来看看Main.fxml的FXController类,在Main标签的fx:controller属性中定义的:fxmlstuff.Main

?

Home.java

?

?

About.java

这篇blog的后续篇会在接下来的星期里完成,下一篇博客会对上面的程序进行扩展,我们会在Main.fmxl中处理About.fxml和Home.fxml中的组件触发的时间。

?

读书人网 >XML SOAP

热点推荐