当我启动倒数计时器时,我的GUI冻结了

时间:2018-02-07 23:13:25

标签: java multithreading swing countdown freeze

我正在尝试创建1小时倒数计时器。我正在使用标签和按钮。当我按下开始按钮时,应该开始倒计时,而不是我的窗口冻结。我搜索了许多网站,他们说问题是Thread.sleep(1000),但我没有得到一个明确的答案,我如何解决我的问题!

        btnStart.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            label.setText("60:00");
            for(int i=59;i>=0;i--)
            {
                for(int j=59;j>=0;j--){
                    try {
                        Thread.sleep(10000);
                    } catch (InterruptedException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                    if(i<10 && j<10){
                        label.setText("0"+i+":0"+j);
                    }
                    else if(i<10 && j>=10){
                        label.setText("0"+i+":"+j);                 
                    }
                    else if(i>=10 && j<10){
                        label.setText(i+":0"+j);                
                    }
                    else {
                        label.setText(i+":"+j);             
                    }
                }
            }
        }
    });

0 个答案:

没有答案