我遇到了这个问题,找到了这篇文章。我的问题只是一个文件名问题。
FXMLLoader(getClass().getResource("/com/companyname/reports/" +report.getClass().getCanonicalName().substring(18).replaceAll("Controller", "") +".fxml"));Parent root = (Parent) loader.load();我有一个全部来自的xml,并且确保我的类与fxml文件相同,但没有word控制器。
我弄乱了子字符串,所以路径是错误的。
长话短说,我认为问题是文件名命名不正确或路径错误。
另外:从那以后我就搬到了Maven项目。非Maven方法是将所有内容都放在项目路径中。下面答案中列出的Maven方法在开始时有点令人沮丧,但我对代码进行了如下更改:
FXMLLoader loader = new FXMLLoader(ReportMenu.this.getClass().getResource("/fxml/" + report.getClass().getCanonicalName().substring(18).replaceAll("Controller", "") + ".fxml"));


