【发布时间】:2016-04-01 13:48:25
【问题描述】:
我在 GridPane 中有一个 TextField,我只是想让它的用户输入内容读入 Integer,然后我将用于多个(非双精度)计算。
TextField userInput = new TextField();
userInput.textProperty().addListener((ObservableValue<? extends String> observable, String oldValue, String newValue) -> {
if (!newValue.matches("\\d*")) {
userInput.setText(newValue.replaceAll("[^\\d]", ""));
}
});
sortButton.setOnMousePressed( e -> {
int savedValue = Integer.parseInt(userInput);
int outputMath = savedValue * 3;
int outputExpo = savedValue * 10;
int outputQuad = savedValue * 4;
});
监听器在确保只接受数字方面做得很好,但是这些数字被读取为我似乎无法用于计算的字符串。
问题的孩子是 Integer.parseInt(userInput) 似乎并没有在这里解决问题。有什么建议吗?
【问题讨论】:
-
但您可以尝试其他替代方案,例如 Integer.valueOf()
标签: java string javafx integer type-conversion