如何使用逗号作为分隔符使JTextField接受double值?

时间:2013-10-22 14:44:09

标签: java swing double jtextfield comma

标题说明了一切。我明显有理由得到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);

}

3 个答案:

答案 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