我正在尋找一種解決方案將我從組合框中獲得的字符串轉換爲雙倍。Javafx:如何將組合框字符串轉換爲雙倍
我是JavaFX的新手,並嘗試將舊的swing項目轉換爲fx。
在Swing我有這樣的事情:
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
String stringPrice = jTextFieldPrice.getText();
try {
double size= nf.parse(jComboboxSize.getItemAt(jComboboxSize.getSelectedIndex()).toString()).doubleValue();
double price= nf.parse(stringPrice).doubleValue();
double newPrice= price * size;
...
我的FX代碼到目前爲止
@FXML
private ComboBox<String> bottleSize;
@FXML
private TextField txfBottlePrice;
ObservableList<String> bottleList = FXCollections.observableArrayList(
"0,187",
"0,25",
"0,375",
"0,5",
"0,62",
"0,7",
"0,75",
"0,8",
"1",
"1,5"
);
....
....
String sPrice = txfBottlePrice.getText();
try {
double dSize = Double.parseDouble(bottleSize.getValue());
double dPrice = Double.parseDouble(sPrice);
double newPrice = dPrice * dSize;
txfPriceLiter.setText(Double.toString(newPrice));
}catch (NumberFormatException e) {
System.out.println("Something went wrong!");
}
但是......它不工作。
爲什麼不只是使用'ComboBox'? –
這將是一個通用的解決方案,但不適合我,因爲可用性方面我必須使用基於本地化的逗號分隔的數字。 而ComboBox只接受ObserverList ,因此數字必須是「0.187」,而不是「0,187」。 –
因此,使用格式對象將值和單元格工廠轉換爲您想要的值。 –