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。
添加回答
舉報