2015-05-28 156 views
0

我嘗試綁定一個StringStringPoperty,我認爲這會工作:空指針試圖綁定一個stringproperty

@FXML private TextArea consoleTextArea; 
StringProperty sp = new SimpleStringProperty(); 
consoleTextArea.textProperty().bind(sp); 

但是這回我一個NULL Pointer Exception,爲什麼呢?

編輯:一些答案後,似乎我consoleTextAreaNULL,但我正確初始化: <TextArea id="consoleTextArea" fx:id="consoleTextArea" prefHeight="309.0" prefWidth="600.0" VBox.vgrow="ALWAYS" />,並我調用控制器之前創建的窗口,所以我不undertand爲什麼會NULL ...

+0

最有可能的文本區沒有被fxml加載器初始化。你可能會wonna仔細檢查,如果你使用的文本區域的名稱是正確的FXML-文件中拼寫爲好,或者你試圖將值綁定時,FXML裝載機甚至被稱爲前。但是如果沒有代碼,我們只能猜測那裏真的發生了什麼。 – crusam

+0

我確實consoleTextAea,似乎空,但我之前裝入FXML ... –

回答

0
  • 您的consoleTextArea已初始化?這是由FXML加載程序完成的,因此請確保在嘗試使用此字段之前先調用它。
  • 你有沒有設置FX:在場景生成器的文本區域的ID來consoleTextArea
  • TextArea是否包含任何文本?
  • 嘗試用new SimpleStringProperty("")初始化sp。

其中一個應該解決它的。

+0

文本區不包含任何文本,爲什麼很重要? –

+0

我不確定它是否重要(不應該),但你永遠不知道,這就是爲什麼我把它包括在內。 –

+0

好,那是因爲我的文本區沒有初始化......就在你的答案補充這一點。 –