2016-04-01 69 views
1

我在GridPane中有一個TextField,我只想將它的用戶類型內容讀入Integer,然後我將用它來進行多次(非雙)計算。將JavaFX 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)在這裏似乎沒有辦法。有什麼建議?

+0

但你可以嘗試其他的選擇,如Integer.valueOf() – Elltz

回答

1

在此行中:

int savedValue = Integer.parseInt(userInput); 

什麼你實際上做的是嘗試解析變量userInput這是一個TextField.

你應該解析TextField而不是textProperty內容:

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