搜尋

首頁  >  問答  >  主體

java - 為什麼無法從 JTextField 讀取 int 值

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);
    }
}
大家讲道理大家讲道理2804 天前629

全部回覆(2)我來回復

  • 巴扎黑

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

    //導包。
    import javax.swing.*;
    import java.awt.event.*;

    class 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);
            }
        });
    }

    }

    綜上所述:
    樓主出現如上問題是因為jtf.getText();方法應該在輸入內容後才讓它執行,而樓主所示的程式碼卻讓它在運行時就執行,所以會報錯。 (個人拙見,嘿嘿)

    回覆
    0
  • 迷茫

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

    謝謝@Sjs_k 的答案

    JTextField t1 = new JTextField(""); 改去 JTextField t1 = new JTextField(5); 就行了

    回覆
    0
  • 取消回覆