为什么java不从GUI中获取数字?
我创建了一个贷款计算器。但它并不是用来计算价值的。你能帮我找出哪里出了问题吗为什么java不从GUI中获取数字?,java,swing,jtextfield,parseint,Java,Swing,Jtextfield,Parseint,我创建了一个贷款计算器。但它并不是用来计算价值的。你能帮我找出哪里出了问题吗 import java.awt.*; import javax.swing.*; public void initUIPanel() { jf = new JFrame(); jf.setTitle("Mortgage Calculator"); jf.setLocation(100, 200); jf.setSize(530, 740); jf.setVisible(tr
import java.awt.*;
import javax.swing.*;
public void initUIPanel() {
jf = new JFrame();
jf.setTitle("Mortgage Calculator");
jf.setLocation(100, 200);
jf.setSize(530, 740);
jf.setVisible(true);
jf.setResizable(false);
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
JPanel pane = new JPanel(gbl);
JPanel pane1 = new JPanel(gbl);
JPanel pane2 = new JPanel(gbl);
gbc.anchor = GridBagConstraints.WEST;
gbc.weightx = 1.0;
gbc.insets = new Insets(30, 3, 3, 3);
loanAmount = new JTextField(12);
gbc.gridx = 1;
gbc.gridy = 0;
gbc.fill = GridBagConstraints.BOTH;
gbl.setConstraints(loanAmount, gbc);
pane.add(loanAmount);
loanTerm = new JTextField(15);
gbc.weightx = 1.0;
gbc.insets = new Insets(20, 3, 3, 3);
loanAmount = new JTextField(12);
gbc.gridx = 1;
gbc.gridy = 1;
gbc.fill = GridBagConstraints.BOTH;
gbl.setConstraints(loanAmount, gbc);
pane.add(loanAmount);
gbc.insets = new Insets(30, 0, 3, 0);
interestRate = new JTextField(4);
gbc.gridx++;
gbc.gridy = 3;
gbc.fill = GridBagConstraints.BOTH;
gbl.setConstraints(interestRate, gbc);
pane2.add(interestRate);
b1 = new JButton("Calculate");
b1.setPreferredSize(new Dimension(5, 25));
gbc.gridx = 0;
gbc.gridy = 5;
gbc.insets = new Insets(20, 30, 0, 30);
b1.addActionListener(this);
gbl.setConstraints(b1, gbc);
pane2.add(b1);
jf.add(pane, BorderLayout.NORTH);
jf.add(pane2, BorderLayout.SOUTH);
jf.setVisible(true);
jf.pack();
}
public void actionPerformed(ActionEvent e) {
double amt, rate, pay;
int time;
String name;
if (e.getSource() == b1) {
amt = Double.parseDouble(loanAmount.getText());
rate = Double.parseDouble(interestRate.getText());
time = Integer.parseInt(loanTerm.getText());
System.out.println(amt);
System.out.println(rate);
System.out.println(time);
} else {
jf.dispose();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MortgageCalculator mc = new MortgageCalculator();
mc.initUIPanel();
}
}
我有不同的课程
我有不同的计算类,但即使在同一类中,它也至少不取值。当我输入任何值时,它会显示异常错误。
我编辑了代码,缩短了它们。我得到的错误是
线程“AWT-EventQueue-0”java.lang.NumberFormatException中的异常:用于输入字符串:“”
即使我在文本区域中输入值。您也不会将
JTextField
loanTerm
添加到JPanel
窗格
中,因此它保留默认的空字符串
值。当出现ActionListener
时,空的字符串会导致NumberFormatException
将JTextField
添加到容器中:
pane.add(loanTerm);
例外情况是什么?代码太多了。将其分解为,不要忘记也发布准确的错误消息…线程“AWT-EventQueue-0”java.lang.NumberFormatException中的异常:对于输入字符串:“”只需将异常的堆栈跟踪粘贴到此处NumberFormatException:对于输入字符串:“”
表示不能将空字符串转换为数字。数字必须至少是一位数字。