Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(テキスト入力文字列の実数への変換)
閲覧数:1356
掲示板(テキスト入力文字列の実数への変換)
名前
題名 テキスト入力文字列の実数への変換
質問内容

質問を評価する
(0ポイント)
初めて質問します。
初心者でJAVA開発を始めましたが、行き詰っています。
何卒お力添えを頂ければと思います。

行き詰っている点は、題名の通りです。
テキスト入力した文字を実数に変換し、実数の変数として四則演算を行いたいです。
下記プログラム実行で、double型d1(変数)へのセットで実行エラーとなり、下記のエラーが表示されます。
「at java.awt.EventQueue.dispatchEvent(Unkown Souce)」のエラーが発生しまう。

厚かましくて申し訳ないのですが、初心者程度の私にどこが問題がご教授頂けると助かります。
何卒よろしくお願いします。

*************************************************
package practicepro;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DentakuFrame extends JFrame {
    private static final long serialVersionUID = 1L;

    JPanel contentPane = new JPanel();
    BorderLayout borderLayout1 = new BorderLayout();
    
    JTextField result = new JTextField(""); 
    JTextField text1; 
    JTextField text2;
    JTextField text3;
    JTextField text4;
    JTextField text5;
    
    public DentakuFrame() {
        contentPane.setLayout(borderLayout1);
        this.setSize(new Dimension(250, 300));
        this.setTitle("テキスト入力から四則演算する");
        this.setContentPane(contentPane);

        contentPane.add(result, BorderLayout.NORTH); 

        JPanel n2 = new JPanel(); 
        contentPane.add(n2, BorderLayout.CENTER);

        
        JLabel label1 = new JLabel("借入額");
        JTextField text1 = new JTextField("0",5); 
        JLabel label2 = new JLabel("借入期間");
        JTextField text2 = new JTextField("0",5); 
        JLabel label3 = new JLabel("毎月返済額");
        JTextField text3 = new JTextField("0",5); 
        JLabel label4 = new JLabel("年間返済額");
        JTextField text4 = new JTextField("0",5); 
        JLabel label5 = new JLabel("総返済額");
        JTextField text5 = new JTextField("0",5); 
        
        
        n2.add(label1);
        n2.add(text1);
        n2.add(label2);
        n2.add(text2);
        n2.add(label3);
        n2.add(text3);
        n2.add(label4);
        n2.add(text4);
        n2.add(label5);
        n2.add(text5);
            
                        
contentPane.add(new CalcButton("計算"),BorderLayout.SOUTH);
this.setVisible(true);
    
    }

    /*計算ボタンを定義 */
    public class CalcButton extends JButton implements ActionListener {
        private static final long serialVersionUID = 1L;

        public CalcButton(String op) {
            super(op);
            this.addActionListener(this);
        }
public void actionPerformed(ActionEvent e){
    
    double d1 = (Double.valueOf(text1.getText()));
    double d2 = (Double.valueOf(text2.getText()));

}
    }
        }

**********************************************
質問日時 2013-02-04 23:41:33
名前
回答内容

回答を評価する
(30ポイント)
まずはメッセージの読み解き方を学んで下さい。
http://www.javaroad.jp/faq/index.html#errMsg
このプログラムではその場所でエラーが出るとは考えにくく、
えら−ではなく例外、おそらく NullPointerException でしょう。
変数の使い方が変です。こちらで再確認して下さい。
http://www.javaroad.jp/java_variable.htm
そこを直しただけでは NumberFormatException の出る状況が残ります。
その場合は例外処理で逃げるか
http://www.javaroad.jp/java_exception1.htm
あらかじめスクリーニングするといいでしょう。
http://docs.oracle.com/javase/jp/6/api/java/lang/Double.html#valueOf(java.lang.String)
もし 〜〜〜Error というのが出ている場合はプログラムのせいではない
可能性もあります。
回答日時 2013-02-05 03:32:50
名前
匿名
回答内容

回答を評価する
(0ポイント)
初心者の自覚あるなら、まずはSwingは忘れることだねー。
それでちゃんと、憶えるべきことを憶えてからにしよう。
惑わされて本質が見えなくなるよ。
回答日時 2013-02-05 07:06:35
名前
回答内容

回答を評価する
(0ポイント)
仙人様

変数の使い方を追って行ったところ、解決しました。
大変助かりました。
お礼もなく申し訳ないのですが、今後もJAVAプログラミングに励みたいです。
ありがとうございました。
回答日時 2013-02-12 22:26:06

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道