0

Java で簡単な税計算プログラムを作成しようとしていますが、計算がうまくいかないようです。コードでは、JTextField 入力を double 変数に変換してから文字列に変換する必要がありました。何らかの理由で、これは機能せず、一連のエラーが発生します。これを書くための何らかの簡単な方法があるに違いないことはわかっているので、どんなアイデアでも大歓迎です。

import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.lang.*;


public class TaxCalculator extends JFrame {

    String twelve;
    JTextField input;
    JLabel ans;

    public TaxCalculator() {
        JFrame frame = new JFrame("Tax Calculator");
        JTextField input = new JTextField(10);
        JLabel ans = new JLabel("");
        JButton twelve = new JButton("12%");

        frame.setVisible(true);
        frame.setLayout(new FlowLayout());
        frame.setSize(250, 100);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.add(new JLabel("Price of Item:"));
        frame.add(input);
        frame.add(ans);
        frame.add(twelve);

        twelve.addActionListener(new HandlerClass());

    }

    public static void main(String[] args) {
        TaxCalculator calc = new TaxCalculator();
    }

    public class HandlerClass implements ActionListener {
        public void actionPerformed(ActionEvent ae) {
            double fnum = Double.parseDouble(input.getText());

            if (ae.getSource() == twelve) {
                fnum = (fnum / 0.12) + fnum;
                ans.setText(Double.toString(fnum));
            }

        }

    }
}
4

1 に答える 1

7

問題はJTextField input;、クラス変数として宣言しただけでなく、同じ名前のローカル変数を作成して JFrame に追加したことです。NullPointerExceptionそのため、実行時に遭遇していますdouble fnum = Double.parseDouble(input.getText());

于 2012-07-20T00:30:25.503 に答える