Maison  >  Questions et réponses  >  le corps du texte

java - why cannot read int value from JTextField

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);
    }
}
大家讲道理大家讲道理2742 Il y a quelques jours583

répondre à tous(2)je répondrai

  • 巴扎黑

    巴扎黑2017-04-18 10:58:26

    //Forfait Guide.
    importer javax.swing.*;
    importer java.awt.event.*;

    classe JTextFieldDemo
    {

    public static void main(String[] args)
    {
        JFrame jf = new JFrame();//创建窗体框架
        jf.setTitle("我的标题");//设置窗体标题
        jf.setBounds(400,500,300,200);//设置窗体在屏幕上出现的位置及大小
        jf.setVisible(true);//设置窗体可见
        
        JPanel jp = new JPanel();//创建JPanel组件
        jf.setContentPane(jp);//将JPanel组件添加到JFrame窗体中
        
        JButton jb = new JButton("转到");//创建JButton按钮组件
        jp.add(jb);//将JButton组件添加到JPanel中
        
        JTextField jtf = new JTextField(10);//创建JTextField
        jp.add(jtf);//将JTextField添加到JPanel中
    
        jb.addActionListener(new ActionListener()//给JButtona按钮添加点击事件
        {
            public void actionPerformed(ActionEvent e)
            {
                String a =jtf.getText();
                int IntA = Integer.parseInt(a);
                System.out.println(IntA);
            }
        });
    }

    }

    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)

    répondre
    0
  • 迷茫

    迷茫2017-04-18 10:58:26

    Merci @Sjs_k pour la réponse

    Changez simplement JTextField t1 = new JTextField(""); par JTextField t1 = new JTextField(5); et tout ira bien

    répondre
    0
  • Annulerrépondre