0

这是使用 java 编写的代码,可将代码的执行延迟 5 秒。但它不起作用。"this.jLabel2.setText("TDK");" 声明不起作用。任何人都可以帮我解决这个问题。

 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
    this.jLabel2.setText("TDK");
    boolean result=false;
    result=stop();
    if(result)
    {
      this.jLabel1.setText("MDK");
    }
}
public boolean stop()
{
    String current= new java.text.SimpleDateFormat("hh:mm"
            + ":ss").format(new java.util.Date(System.currentTimeMillis()));
    String future=new java.text.SimpleDateFormat("hh:mm"
            + ":ss").format(new java.util.Date(System.currentTimeMillis()+5000));   

    while(!(current.equals(future)))
    {
       current= new java.text.SimpleDateFormat("hh:mm"
               + ":ss").format(new java.util.Date(System.currentTimeMillis()));  
    }

      return true;
}
4

2 回答 2

3

您正在阻塞事件调度线程(不,也不要使用 Thread.sleep() )。使用摇摆计时器

Timer timer = new Timer(HIGHLIGHT_TIME, new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        jLabel1.setText("MDK");
    }
});
timer.setRepeats(false);
timer.start();

HIGHLIGHT_TIME您想延迟设置文本的时间在哪里。

于 2013-08-28T18:48:54.627 回答
1

使用javax.swing.TimerwithsetRepeats设置为false

于 2013-08-28T18:49:30.267 回答