使用线程的用户输入倒数计时器



我有一个由 1 个按钮、1 个文本字段、1 个标签组成的 GUI。它将字符串从文本字段转换为 int。将其递减 1。在标签上打印

 @Override
    public void run() {
        while (runner == Thread.currentThread()) {
            try {
                System.out.println("Step 1");
                int count = Integer.valueOf(txt.getText());
                System.out.println("Step 2");
                while (count != 0) {
                    count--;
                    lblcount.setText("Time Left is " + Integer.toString(count));
                    Thread.sleep(1000);
                    System.out.println("Step 3");
                }
            } catch (InterruptedException ie) {
                System.out.println("error of some sort here step 4");
            }
        }
        repaint();
    }
    public static void main(String[] args) {
        Timed2 dd = new Timed2();
    }
    @Override
    public void actionPerformed(ActionEvent eve) {
        Object source = eve.getSource();
        if (source.equals(btncount)) {
            run();
        }
    } 

控制台错误

Step 1
Exception in thread "Thread-1" java.lang.NumberFormatException: 
For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:504)
    at java.lang.Integer.valueOf(Integer.java:582)
    at timed2.Timed2.run(Timed2.java:42)
    at java.lang.Thread.run(Thread.java:745)

我如何更改线程以在用户输入数字之后而不是之前读取文本框,从而给我此错误,这意味着它不会倒计时

另外,它似乎无法解析空字符串

 For input string: ""
    at 
 java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

因此,如果从 GUI 发送任何值,请检查调试。

最新更新