2015-05-28 150 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

好,那是因为我的文本区没有初始化......就在你的答案补充这一点。 –