javafx 定义块和
示例
有时需要在fxml中通常的对象结构之外创建一个元素。
这是定义块起作用的地方:
<fx:define>元素内的内容不会添加到为父元素创建的对象中。
<fx:define>需求的每个子元素都需要一个fx:id属性。
稍后可以使用<fx:reference>元素或使用表达式绑定来引用以此方式创建的对象。
<fx:reference>通过使用与元素的属性中与被引用元素的属性相同的值,可以使用该元素来引用具有fx:id在该<fx:reference>元素被处理之前已处理fx:id的source属性的任何<fx:reference>元素。
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.text.*?> <?import java.lang.*?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <VBox xmlns:fx="http://javafx.com/fxml/1" prefHeight="300.0" prefWidth="300.0" xmlns="http://javafx.com/javafx/8"> <children> <fx:define> <String fx:value="My radio group" fx:id="text" /> </fx:define> <Text> <text> <!-- reference text defined above using fx:reference --> <fx:reference source="text"/> </text> </Text> <RadioButton text="Radio 1"> <toggleGroup> <ToggleGroup fx:id="group" /> </toggleGroup> </RadioButton> <RadioButton text="Radio 2"> <toggleGroup> <!-- reference ToggleGroup created for last RadioButton --> <fx:reference source="group"/> </toggleGroup> </RadioButton> <RadioButton text="Radio 3" toggleGroup="$group" /> <!-- reference text defined above using expression binding --> <Text text="$text" /> </children> </VBox>