fx:包含资源在不同JAR中的时间

时间:2017-12-11 21:49:17

标签: javafx-8

我创建了一个框架,可以在其他jar文件中打开FXML。我使用以下内容打开它们:

(fxml)是从数据库查询传入的字符串...

FXMLLoader loader = new FXMLLoader();
Parent node = loader.load(getClass().getClassLoader().getResource(fxml).openStream());

这适用于我的所有FXML,我真的不想改变它。

我有一个新窗口,它与另一个窗口的实现非常相似,我想用fx:include分享它们之间的FXML。

然而,这会引发错误 javafx.fxml.LoadException:基本位置未定义。

我找到了关于linked files

的链接

反正有这个 - 没有改变我的整个实现?如果没有,可能只会复制逻辑。

感谢。

1 个答案:

答案 0 :(得分:2)

问题是,如果您提供InputStream,则location(a URL)未定义。显然你的FXML正在某处使用该位置(例如通过位置解析)尝试

FXMLLoader loader = new FXMLLoader(getClass().getClassLoader().getResource(fxml));
Parent node = loader.load();