我在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" />
屏幕截图示例:
现在,通常我希望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();
}
答案 0 :(得分:1)
看起来我不应该使用“thresholdBox = new TextField();”在我的初始化函数中,因为它覆盖了我的fxml TextField。
谢谢James_D,你的回答。