JTextField t1 = new JTextField(" ");
String a = t1.getText();
int intA = Integer.parseInt(a);
System.out.println(intA);
Error
java.lang.NumberFormatException: For input string: "1 "
附上我的代码
public class Testing extends JPanel {
public int s;
public Testing() {
JPanel p = new JPanel();
JTextField t1 = new JTextField(" ");
JTextField t2 = new JTextField(" ");
JTextField t3 = new JTextField(" ");
JButton b3 = new JButton("result");
p.add(t1);
p.add(t2);
p.add(t3);
p.add(b3);
add(p);
b3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String a = t1.getText();
int intA = Integer.parseInt(a);
System.out.println(intA);
// String b = t2.getText();
//t3.setText(a+"");
} catch (NumberFormatException ignored) {
System.out.println(ignored);
}
}
});
}
public static void main(String... arg) {
Testing p = new Testing();
JFrame frame = new JFrame();
frame.add(p);
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
}
//Forfait Guide.
importer javax.swing.*;
importer java.awt.event.*;
classe JTextFieldDemo
{
}
Pour résumer :
Le problème ci-dessus se produit car la méthode jtf.getText(); doit être exécutée après la saisie du contenu, mais le code affiché par l'affiche permet de l'exécuter au moment de l'exécution, donc une erreur sera être signalé. (Mon humble avis, hehe)
Merci @Sjs_k pour la réponse
Changez simplement
JTextField t1 = new JTextField("");
parJTextField t1 = new JTextField(5);
et tout ira bien