簡體   English   中英

使用 Integer.parseInt 使我的程序崩潰

[英]Using Integer.parseInt crashes my program

我查看了整個互聯網,但找不到我的程序發生這種情況的原因。 基本上我正在嘗試制作一個 TextField 來生成一串數字,並且該字符串變成一個整數,並且標簽更改為數字 +1 每當我嘗試使用 Integer.parseInt 它崩潰了

這是我的代碼

public class dfadsfa {

    private JFrame frame;
    private JTextField textField;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    dfadsfa window = new dfadsfa();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public dfadsfa() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */

    String Text;
    int Number = Integer.parseInt(Text); //This line Screws it up

    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        JLabel lblNumber = new JLabel("");
        lblNumber.setBounds(198, 181, 61, 16);
        frame.getContentPane().add(lblNumber);

        textField = new JTextField();
        textField.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Text = textField.getText();
                lblNumber.setText(Number+1+"");
            }
        });

        textField.setBounds(163, 140, 130, 26);
        frame.getContentPane().add(textField);
        textField.setColumns(10);


    }

}

這是顯示的消息-

java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.parseInt(Integer.java:615)
at dfadsfa.<init>(dfadsfa.java:42)
at dfadsfa$1.run(dfadsfa.java:21)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

您有一個未初始化的字符串文本。 嘗試解析 int 時,這肯定會失敗。

String Text;
int Number = Integer.parseInt(Text);

在嘗試解析 int 之前,您應該初始化text本。

Text 沒有被初始化,所以它給出了一個 NumberFormatException。 如果傳遞的字符串不包含可解析的整數,則此處 Integer.parseInt() 方法將給出 NumberFormatException。

String Text = "0"解決問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM