Javafx Textfield - getText()为空?

时间:2017-04-05 17:38:34

标签: java javafx textfield

我在FXML中创建了一个javafx中的TextField。它链接到名为“thesholdBox”的变量(如下所示,实例化未显示)。我有字段侦听KeyEvents,但每当我在字段中输入值时,“getText()”总是返回一个空字符串。

Java代码:

@FXML
public void threshBox(KeyEvent e) {
    //always empty unless I set it manually using "thresholdBox.setText("TESTING")" or something
    String newValue = thresholdBox.getText();
    System.out.println("Text: " + newValue);
}

FXML:

<TextField fx:id="thresholdBox" layoutX="255.0" layoutY="5.0" onKeyTyped="#threshBox" prefHeight="31.0" prefWidth="91.0" promptText="0.00" />

屏幕截图示例:

enter image description here

现在,通常我希望thresholdBox.getText()返回“TEST”。测试显示代码肯定被触发,但每次传递总是给我一个空字符串。有人知道为什么吗?我对Javafx很新,虽然我没有在文档中看到为什么会出现这个问题,但我完全有可能错过了一些东西。

如果我能让我的问题更清楚,请告诉我。

谢谢!

更新:相关代码 -

//here are the only two other places thresholdBox is used. 
//I cropped irrelevant variable declarations, since they do not interact with thresholdBox. 

//class variable
@FXML
TextField thresholdBox;

@Override
public void initialize(URL url, ResourceBundle rb) {
    thresholdBox = new TextField();
}

1 个答案:

答案 0 :(得分:1)

看起来我不应该使用“thresholdBox = new TextField();”在我的初始化函数中,因为它覆盖了我的fxml TextField。

谢谢James_D,你的回答。