2017-07-04 44 views
0

每當我在textField中鍵入一些文本並單擊按鈕時,要觸發save()方法,文本字段將返回null。什麼可能導致這個?TextField返回null

@FXM 
private TextField nome = new TextField(); 

public void save() { 
    Model model = new Model(); 
    model.setNome(nome.getText()); 
    model.setStatus(status.getSelectedToggle().isSelected()); 
} 


public void initialize(URL location, ResourceBundle resources) { 

    ModelController modelController = new ModelController(); 
    btnSalvar.setOnAction(event -> modelController.save()); 
    border.setCenter(modelController.onScreen()); 
} 
+1

返回'null'?你甚至如何檢查這一點。此外,你是否從fxml初始化'nome',或者這只是一個初始化的字段,以防止在訪問NPE時出現NPE。這樣你可以修復NPE,但是你不會有一個包含場景中顯示的「TextField」的字段。 「@ FXM」又是什麼樣的註釋?我期望'@ FXML' ... – fabian

回答

1

問題是這一行:

@FXM 
private TextField nome = new TextField(); 

當你做,你要更換的參考屏幕上顯示的對象,爲您創建一個新的。如果你想通過引用創建FXML對象簡單地使用:

@FXML 
private TextField nome; 

在FXML文件中的文本字段應該有一個FX:ID匹配您的變量名:

<TextField fx:id="nome" />