【发布时间】:2017-01-18 17:56:20
【问题描述】:
我想将 javaFX 文本字段设置为小数点后两位。我找到了答案,但它是针对数值的。例如
// force the field to be numeric only
textField.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
if (!newValue.matches("\\d*")) {
textField.setText(newValue.replaceAll("[^\\d]", ""));
}
}
});
在上面的代码中,什么是限制值的替换,直到小数点后两位。 或者是否有任何其他解决方案来限制文本字段。 我有 Binding TextField 这是我的部分代码...
@FXML public TextField InvoiceTotal;
private DoubleProperty invTotal;
invTotal = new SimpleDoubleProperty(0);
netAmount.bind(grossAmount.subtract(disc));
StringConverter<? extends Number> converter= new DoubleStringConverter();
Bindings.bindBidirectional(InvoiceTotal.textProperty(),invTotal,(StringConverter<Number>)converter);
现在我想在 InvoiceTotal 文本字段上设置两位小数的限制
【问题讨论】:
-
看看TextFormatter。您可以使用 UnaryOperator 定义所有内容
标签: java javafx-8 scenebuilder