JavaFX - 可重用的 FXML 组件

标签 java user-interface javafx fxml scenebuilder

我正在使用 Scene Builder 构建一个 GUI,我的大部分场景都有一个共同元素(底部有一个 iOS 类型的主页按钮)。 我想知道是否可以在单独的 fxml 文件中定义此组件。根据我进行的研究,存在用于声明可重用组件的类似过程,但仅在同一 fxml 文件中。 我如何将此原则应用于多个 fxml 文件?

最佳答案

你可以这样做:

<AnchorPane xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.example.MainController">
<children>
<fx:include fx:id="someId" source="NestedFXML.fxml"/>
</children>
<AnchorPane xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.example.NestedFXMLController">
</AnchorPane>

Controller 类:

public class MainController implements Initializable {

    @FXML
    private NestedFXMLController someIdController;

    @Override
    public void initialize(URL location, ResourceBundle resources) {
    // TODO Auto-generated method stub

    }
}

public class NestedFXMLController implements Initializable {

    @Override
    public void initialize(URL location, ResourceBundle resources) {
    // TODO Auto-generated method stub

    }
}

请注意,嵌套 Controller 可以通过 FXML 注释注入(inject)。 字段名称必须匹配 fx:id 属性字符串 + "Controller"!

寻找 MWE here .

关于JavaFX - 可重用的 FXML 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39301143/

相关文章:

java.lang.IllegalArgumentException : Illegal group reference

Java:Swing 的困难

java - 在单独的 JavaFX 线程中排队打印作业

java - 强制Java编译器假设所有变量都是final的

java - 如果远程调用,Swing 应用程序会在重新连接时挂起

user-interface - 由使用 Matlabs 指南构建的 GUI 的回调共享的变量

JavaFX:CSS 文件中的未知属性

TableView 中带有自定义 CellFactory 的 Javafx 2.0 慢列

java - 使 JPopupMenu 以一定的左下角坐标显示

user-interface - 如何调整 TextField 的后缀/suffixIcon 高度?