如果您在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