2016-04-13 7 views
0

私のプログラムでは、誕生日の年齢ので動作します。私はJTextField文字列をdoubleに変換しようとするのに問題があります。解析メソッドを使用しましたが、引き続きエラーが発生しました。助けてください!は、どのように私は、二重に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(); 

    } 

} 
+0

あなたはどんなエラーを出していますか? – robotlos

+0

あなたはトラブルシューティングするために、 'txtMonth'を印刷してみましたか...?それは最初の手順でなければなりません.... – Maljam

+0

コードはコンパイルされません。 – null

答えて

0

明らかtxtMonthはJTexfieldあるが、Double.parseDoubleメソッドは、文字列を受け取ります。メソッドのjavadoc hereを確認してください。

は、使用してみてください:

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

テキストがdoubleに変換できない場合にも、この方法は、NumberFormatExceptionがスローされます。

0

あなたは試みることができる:

Double Amount = Double.valueOf(txtMonth); 

ドキュメントによると:

このメソッドの引数Stringで表されるdouble値を保持するDoubleオブジェクトを返します。

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

又は

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

parseDouble()プリミティブdouble値を返します。 valueOf()は、ラッパークラスDoubleのインスタンスを返します。これら二つの間に非常に有意な差だったJava 5の導入オートボクシング、前

0

あなたは...メソッドgetTextを呼び出すことにより、オブジェクトtxtMonthのテキストを取得し、入力を検証してくださいまたはトライキャッチは、入力が有効でない落ちる使用する必要が

例:

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); 
}