如果您在JTextField中写入字符串而不是od整数,则在生成异常时遇到问题。我想总结输入数字并将结果写在JButton上,每次点击它。我每次点击按钮时,我得到EN错误: *如何在JTextField中输入字符串而不是整数时创建Java异常?
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at EnaP.actionPerformed(EnaP.java:12)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)...
*
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Ena {
public static JTextField a;
public static JTextField b;
public static void main(String[] args) {
JFrame okno = new JFrame();
okno.setSize(400, 200);
a = new JTextField("Number1");
b = new JTextField("Number2");
JButton gumb = new JButton("SUM");
gumb.setPreferredSize(new Dimension(200,200));
EnaP poslusalec = new EnaP();
gumb.addActionListener(poslusalec);
JPanel p = new JPanel();
p.add(a);
p.add(b);
okno.add(gumb, BorderLayout.EAST);
okno.add(p, BorderLayout.WEST);
okno.setTitle("Sum");
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okno.setVisible(true);
}
}
和其他类 - 监听器:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
public class EnaP implements ActionListener{
public void actionPerformed(ActionEvent e) {
JButton gumb = (JButton) e.getSource();
try{
String a = Ena.a.getSelectedText().toString();
String b = Ena.b.getSelectedText().toString();
int x = Integer.parseInt(a);
int y = Integer.parseInt(b);
int sum = x+y;
gumb.setText(""+sum);
}
catch (NumberFormatException n) {
System.out.println("Please enter a number.");
}
}
}
我不知道如何修复它...
的[?什么是空指针异常,以及如何解决呢(可能的复制http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) –
你应该像这样使用'instanceof':'if(e.getSource()instanceof JButton)''否则抛出异常 – specializt