在 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。
我有一个 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。