我们有多个基于 JavaFX 的 GUI 项目。我们现在的目标是重构大量这些 GUI,提取公共视图和源代码,并通过库(bundle jar)使这些公共代码可用。我目前遇到的问题是我有一个视图,它显示日志文件并通过 FXML 包含在主视图中
<fx:include fx:id="logFileView" source="./sub/LogView.fxml"
maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity"
minWidth="-Infinity" prefHeight="600" prefWidth="1000"
style="-fx-background-color: rgba(0, 0, 0, 0.0);"
StackPane.alignment="CENTER_RIGHT" />
包含它的LogView.fxml
控制器
fx:controller="auv.e4.application.analyser.controller.sub.LogViewController"
但这LogView.fxml
现在被放置在一个公共库(bundle jar)中,应该可以被我们的任何 GUIS 访问
我们有 50 种不同的视图以这种方式构建,我更喜欢以这种方式使用 FXML。
另一个问题是公共库将是捆绑项目(否则 RCP GUI 无法将它们解析为依赖项),这使得使用绝对路径成为不可能(这也不是一个好习惯)。GUI 是基于 RCP 的 GUI,它使用 JavaFX 进行渲染。
我现在的问题是如何LogView.fxml
从 FXML (with ) 内部的另一个项目中引用fx:include
?这可能吗 ?如果不是,应该/可以进行什么样的重组?