在 JavaFX 中标记为自定义按钮? (通过使用 FXML)

Label as a Custom Button in JavaFX? (By using FXML)

我有一个 FXML 文档,其中包含我的 JavaFX 项目的可视化基础,我想通过使用窗格创建一个自己的顶部栏(X、minumum/maximum 等所在的位置)。但是我的程序将有多个页面(场景)并且为了保持代码干净,我想将 Custom-Topbar 作为一个单独的 class(有点像组件对象)。我只是不知道我应该如何将这个 class 实现到我使用的 FXML 基础中(我正在使用 Scene Builder)。

选项 1

如果工具栏始终存在,您可以拥有一个包含工具栏和容器的主 fxml 文件。 然后从其他 fxml 加载内容并将该内容放入容器中。要切换页面,请切换容器的内容(而不是场景)。

选项 2

创建一个只有工具栏的 fxml 文件。然后在其他 fxml 中使用 <fx: include /> 标记来包含工具栏。这就像 "component".

编辑:这就是选项 2 在实践中的工作方式。

假设 toolbar.fxml 是仅包含工具栏的 fxml 文件的名称。

只需在另一个 fxml 文件中包含 <fx:include source="toolbar.fxml"/> 即可在该位置包含工具栏。有关详细信息,请参阅 here