Java 字符串加倍,然后再返回。(爪哇)
我试图用Java编写一个简单的税务计算器程序,但似乎无法正确计算。在代码中,我不得不将JTextField输入转换为双变量,然后转换为字符串。出于某种原因,这不起作用,并且会带来一系列错误。我知道一定有更简单的方法来写这篇文章,所以任何想法都会很感激Java 字符串加倍,然后再返回。(爪哇),java,string,double,Java,String,Double,我试图用Java编写一个简单的税务计算器程序,但似乎无法正确计算。在代码中,我不得不将JTextField输入转换为双变量,然后转换为字符串。出于某种原因,这不起作用,并且会带来一系列错误。我知道一定有更简单的方法来写这篇文章,所以任何想法都会很感激 import javax.swing.*; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; i
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));
}
}
}
}
问题是您已经声明了
JTextField输入
作为类变量,但也创建了一个同名的局部变量,并将其添加到JFrame中。这就是为什么在执行double-fnum=double.parseDouble(input.getText())时会遇到NullPointerException
代码>您遇到了哪些错误?这些错误的完整堆栈跟踪是什么?您的计算没有问题。问题在于变量的重新声明。@SPARK同样适用于答案
和十二个
字段。同样在12
的情况下,您应该将其类型从String
更改为JButton
。否则,ae.getSource()==12
将毫无意义。