【问题标题】:Convert the content of JavaFX TextField into Integer将 JavaFX TextField 的内容转换为 Integer
【发布时间】: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


【解决方案1】:

在这一行:

int savedValue = Integer.parseInt(userInput);

你实际上在做的是尝试解析变量userInput 这是一个TextField.

您应该改为解析TextFieldtextProperty 的内容:

int savedValue = Integer.parseInt(userInput.getText());

【讨论】:

    猜你喜欢
    • 2013-01-02
    • 1970-01-01
    • 2015-09-02
    • 2013-05-10
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    相关资源
    最近更新 更多