我们有多个基于JavaFX的GUI项目。我们现在的目标是重构很多这些GUI并提取公共视图和源代码,并通过库提供这些公共代码(bundle jar' s)。我目前有一个问题,我有一个显示日志文件的视图,并在主视图中通过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
现在放在一个公共的lib(包jar)中,任何我们的GUIS都可以访问
我们有50个不同的视图以这种方式构建,我更喜欢以这种方式使用FXML。
另一个问题是常见的lib将是bundle项目(否则RCP GUI不能将它们解析为依赖项),这使得绝对路径不可能使用(这不是一个好习惯)。 GUI是基于RCP的GUI,它使用JavaFX进行渲染。
我现在的问题是如何从FXML内部的另一个项目(LogView.fxml
)引用fx:include
?这可能吗 ?如果不是应该/可以进行什么样的重组?