Thread.sleep(xx)但整个程序都在睡觉?

Chr*_*ler 0 java multithreading sleep

嘿..我有一个程序,签入一些人..如果他们有一个部门,编程将显示一个列表的面板..

所以我想在几秒钟后设置面板不可见..我怎么能这样做?

我创建了一个新的Thread(FadeThread)并在视图中启动它,但是现在,当我写的时候

Thread.sleep(5000)
Run Code Online (Sandbox Code Playgroud)

整个程序睡了5秒钟,...我只想在后台等待5秒钟并将面板设置为可见(假),但整个UI和程序都在睡觉.

谢谢.. .

biz*_*lop 5

Thread.sleep()将挂起当前线程,我认为这是你的情况下的事件调度程序线程.如果你在后台线程中执行它,它应该工作,虽然如果你不小心打电话run()而不是start(),它不会.

要执行具有设置延迟的代码,您必须使用Timer该类.更清洁,你不必担心意外创建太多线程,没有正确退出线程等等.

  • 我们要清楚(因为太阳不是).JDK中有两个`Timer`类:`java.util.Timer`和`javax.swing.Timer`.后者是专门为Swing UI设计的:它在EDT上触发了`ActionEvents`,因此您可以安全地更新组件.有关更多详细信息,请参阅此文章:http://java.sun.com/products/jfc/tsc/articles/timer/ (6认同)