gpt4 book ai didi

JavaFX 文本字段验证

转载 作者:行者123 更新时间:2023-11-30 06:52:19 25 4
gpt4 key购买 nike

我想验证JavaFX TextField 中输入的数据是否为整数。我只想在用户完全写入输入并移至下一个字段后才进行此验证。

尝试了一种方法,但它不起作用,我不明白为什么:

product_quantity.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
if (!product_quantity.isFocused()) {
if (!product_quantity.getText().matches("[0-9]*")) {
total_cost.setStyle("-fx-background-color: red;");
} else {
total_cost.setText(Float.toString(Float.parseFloat(newValue) * Float.parseFloat(unit_cost.getText())));
total_cost.setStyle("-fx-background-color: white;");
}
}
}
});

如何做到这一点?

最佳答案

您可以向 focusProperty() 添加监听器,而不是向 textProperty() 添加监听器。这样,仅当 TextField 失去或接收焦点时才会触发监听器。

textField.focusedProperty().addListener((observable, oldValue, newValue) -> {
if(!newValue) { // we only care about loosing focus
// check condition and apply necessay style
}
});

关于JavaFX 文本字段验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39043497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com