2016-05-30 50 views
0

這使我發瘋。我試圖從FXML Loder獲得控制器,但我得到一個NullPointerException。JavaFX - FXMLLoder getController()返回null

我嘗試獲取控制器數據的類。

Node node= (Node) event.getSource(); 
Stage stage= (Stage) node.getScene().getWindow(); 
FXMLLoader loader = new FXMLLoader(getClass().getResource("/view/admin.fxml")); 
BorderPane bp = loader.load(); 

Scene scene = new Scene(bp); 

stage.setScene(scene); 
adminController ac = loader.getController(); 
System.out.println(ac.adminName.getText()); 

ac.setLoggedIn(admin); 


stage.show(); 

XML文件,並在控制器,因爲當我刪除註釋出它不給我一個異常ac.setLoggedIn(管理員)線工作的罰款。

+0

哪個引用實際上是null? –

+0

@James_D我嘗試打印的行:ac.adminName.getText() – Arlind

+0

所以,回答我的問題。是'ac' null還是'adminName' null? –

回答

0

在控制器中,我已經將FXML對象聲明爲Label而不是文本對象。同樣在我寫在這裏的代碼中,我試圖在將對象實際分配給控制器之前打印管理員名稱。