我创建了一个框架,可以在其他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
的链接反正有这个 - 没有改变我的整个实现?如果没有,可能只会复制逻辑。
感谢。
答案 0 :(得分:2)
问题是,如果您提供InputStream
,则location
(a URL
)未定义。显然你的FXML正在某处使用该位置(例如通过位置解析)尝试
FXMLLoader loader = new FXMLLoader(getClass().getClassLoader().getResource(fxml));
Parent node = loader.load();