无法在while循环中的java applet中的文本字段中设置文本

Arp*_*wal 1 java applet sleep awt event-dispatch-thread

我想在一个java小程序中制作一个秒表.问题是..我有一个文本字段说"数字".我接受输入然后当我按下开始按钮时..流程转到下面提到的循环... //我使用NETBEANS!我需要在数字字段中的每1秒文本必须递减1之后...但这不会发生.代码工作正常..但是在时间完成后显示"0"..而不是在循环运行时.

private void startActionPerformed(java.awt.event.ActionEvent evt) 
{                                      
    int i = Integer.parseInt(number.getText());
    number.setText(Integer.toString(i));

    while(i!=0)
    {
        System.out.print(i);
        //number.setText(Integer.toString(i));
        number.setText("");
        try{Thread.sleep(900);}catch(Exception e){e.getMessage();System.out.println(e);}
        i--;
    }
}  
Run Code Online (Sandbox Code Playgroud)

Hov*_*els 5

你的while循环工作正常,但是你的Thread.sleep正在使Swing事件线程进入休眠状态并使用整个GUI.请改用Swing Timer.