在java程序中设置延迟

时间:2013-03-27 14:00:16

标签: java delay

对于这样一个新手问题,我很抱歉,我试图在两个JText字段之间设置一个延迟颜色,即:

 box1.setBackground(Color.yellow);
 box2.setBackground(Color.red);

我试过用:

try {
    Thread.sleep(1000); 
}catch(InterruptedException ex) {
    Thread.currentThread().interrupt();
}

然而,当使用此功能时,延迟会立即发生,并且两种颜色仅在延迟后发生变化。提前感谢您为我的情况所发出的任何亮光:))

1 个答案:

答案 0 :(得分:1)

box1.setBackground(Color.yellow);
new Thread(new Runnable(){
   public void run(){
       try{
          Thread.sleep(1000);
       }catch(InterruptedException ex){
          ex.printStackTrace();
       }
       box2.setBackground(Color.red);
   }
}).start();

如果执行Thread.sleep(1000);在主线程上,一旦睡眠终止,页面的渲染就会完成,你会看到两个框都改变它们的颜色。

如果sleep在另一个与主线程不同的线程中运行,mainThread渲染将在新线程启动后立即完成,您可以看到第一个框变换他的颜色。执行睡眠后,box2将改变其颜色。对不起我的英文,我希望你能理解:)