标题说明了一切。我明显有理由得到NumberFormatException。我想用我的JTextFields输入双值,使用逗号而不是点作为小数分隔符,因为我是北欧。
public void actionPerformed(ActionEvent event2) {
NumberFormat nf = NumberFormat.getInstance(Locale.GERMAN);
double firstW = Double.parseDouble(firstWeight.getText());
double secondW = Double.parseDouble(secondWeight.getText());
double outcome = (firstW - secondW);
nf.setMaximumFractionDigits(2);
JLabel result = new JLabel();
result.setText(nf.format(outcome) +" kg" );
add(result);
setVisible(true);
}
答案 0 :(得分:2)
如果您有NumberFormat
,那么您已经拥有了所需的一切。只需使用NumberFormat.parse
代替Double.parse
即可。但是当你使用JFormattedTextField
时会更容易(猜猜它是从类名中做了什么。将所需的NumberFormat
传递给构造函数,即new JFormattedTextField(nf)
。JFormattedTextField
有一个getValue
方法返回上一次有效修改,如果NumberFormat
,则为Number
。
了解您的图书馆
答案 1 :(得分:1)
按下按钮时可以用逗号替换逗号:
String text=textfield.getText().replace(",",".");
然后你可以使用text变量,而不是textfield.getText();
答案 2 :(得分:0)
提交时迭代文本字段,如果发生逗号,则替换为小数。循环后将字符串转换为double