fxml 包括其他 fxml 文件和用户定义的属性

Mic*_*elS 2 javafx scenebuilder

嗨,

我有以下问题。

是否可以创建一个主 fxml 文件并放置/包含另一个应该具有用户定义属性的 fxml 文件。

例如,我有 :main.fxmlfan_object.fxml
然后将 3 包含fan_object.fxmlmain.fxml. 现在我想为每个fan_object.fxml实例定义一个其他地址或工具提示文本等等?

这可能吗?

Cal*_*ips 5

检查文档:fx:include

您可以执行以下操作:

如果这是你的main.fxml

<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<VBox xmlns:fx="http://javafx.com/fxml">
    <children>
        <fx:include fx:id="fan1" source="fan_object.fxml"/>
        <fx:include fx:id="fan2" source="fan_object.fxml"/>
        <fx:include fx:id="fan3" source="fan_object.fxml"/>
    </children>
</VBox>
Run Code Online (Sandbox Code Playgroud)

在您的MainController.java类中:

@FXML
private FanController fan1Controller;
@FXML
private FanController fan2Controller;
@FXML
private FanController fan3Controller;
Run Code Online (Sandbox Code Playgroud)

现在在您的FanController.java类中:

public void setToolTip (String tooltipText){
        //You put the tooltip of the object you have in this controller
        //for instance
        myButton.setTooltip(new Tooltip(tooltipText));
}
Run Code Online (Sandbox Code Playgroud)

现在你所要做的就是调用:

fan1Controller.setToolTip("Tip : !");
Run Code Online (Sandbox Code Playgroud)

希望这可以解决您的问题。