如何将JTextField字符串转换为double?

时间:2016-04-13 16:57:16

标签: java string double jtextfield

我的计划适用于生日和年龄。我试图将我的JTextField字符串转换为双打时遇到问题。我使用了解析方法但仍然收到错误。请帮助!

public class MyPaymentFrame extends JFrame implements ActionListener {

    JTextField txtAge;
    JTextField txtDate;

        public MyPaymentFrame()  {
        Container mycnt = getContentPane();
        mycnt.setLayout(new FlowLayout());

        Color c = new Color(56, 100, 20);
        Font F = new Font("Arial", Font.ITALIC, 20);

        mycnt.add(new JLabel("Enter your Age"));
        txtAge = new JTextField(15);
        mycnt.add(txtAmount);


        mycnt.add(new JLabel("Enter birthdate"));
        txtDate = new JTextField(10);
        mycnt.add(txtDate);

    }
        if (e.getActionCommand().equals("Clear")) {
            txtAge.setText("");
            txtDate.setText("");
        }

        if (e.getActionCommand().equals("Calculate")) {
            // Converting String to Double
            double Amount = Double.parseDouble(txtMonth);

        }

    }
    public static void main(String[] args) {

        Theframe myframe = new Theframe();

    }

}

4 个答案:

答案 0 :(得分:0)

你可以尝试:

    Double Amount = Double.valueOf(txtMonth);

根据文件:

此方法返回一个Double对象,其中包含由参数String表示的double值。

答案 1 :(得分:0)

显然txtMonth是一个JTexfield,但Double.parseDouble方法接收一个String。检查方法的javadoc here

尝试使用:

double Amount = Double.parseDouble(txtMonth.getText());

此外,如果文本无法转换为double,则此方法将抛出NumberFormatException。

答案 2 :(得分:0)

 double Amount = Double.parseDouble(txtMonth.getText());

Double Amount = Double.valueOf(txtMonth.getText());

parseDouble()返回原始double值。 valueOf()返回包装类Double的实例。

在Java 5引入自动装箱之前,这两者之间存在非常显着的差异。

答案 3 :(得分:0)

您需要通过调用方法txtMonth来获取对象getText的文本并且请验证输入或使用Try catch fall输入无效...

实施例

public static void main(String[] args) {
    double amount=0.0;
    try {
         amount = Double.parseDouble(txtMonth.getText());
    } catch (Exception e) {
        System.err.println("ups, this was not castable to double");
          amount=-10.0;
    }
    System.out.println("Here is the double: "+ amount);
}