2 回答
TA贡献1828条经验 获得超3个赞
仔细查看堆栈跟踪:
...
Caused by: javafx.fxml.LoadException:
/D:/Programming/Java/javastart/ssmaker/target/classes/fxml/buttonsPane.fxml
/D:/Programming/Java/javastart/ssmaker/target/classes/fxml/mainPane.fxml:17
...
Caused by: java.lang.NullPointerException
at ssmaker/com.lanssmaker.controller.LogPaneController.initialize(LogPaneController.java:25)
这意味着当您加载buttonsPane.fxml时发生异常FXMLLoader
<fx:include source="buttonsPane.fxml"/>
元素。
此外,它告诉我您不仅使用LogPaneControllerfor logPane.fxml,还使用 for buttonsPane.fxml。每次加载 fxml 时都会创建单独的控制器实例;使用<fx:include>结果FXMLLoader会创建一个单独的实例来加载包含的 fxml。logTable仅为其中之一注入该字段;对于其他控制器实例,它仍然存在null。buttonsPane.fxml(这甚至忽略了加载发生在加载之前的事实logPane.fxml,所以即使在加载buttonsPane.fxml完成时使用了相同的控制器实例,也TableView没有基于创建logPane.fxml。)
buttonsPane.fxml为和使用单独的控制器类logPane.fxml。您不会通过简单地使用相同的控制器类来让两个 fxml“进行通信”。我会建议一个替代方案,但你在那里做的事情没有任何意义(除非你试图挑起 NPE):isHover简单地重新调整属性的值hover,该属性始终false用于尚未属于 a 的节点Scene。
添加回答
举报
