Java 如何延迟gui';在不延迟接口的情况下运行?

Java 如何延迟gui';在不延迟接口的情况下运行?,java,swing,user-interface,delay,Java,Swing,User Interface,Delay,我正在创建一个闪存卡程序,希望在弹出问题和回答之间有几秒钟的延迟。我一直在尝试使用线程。睡眠 question.setText(questionString); if(timed.isSelected()) { delay();//uses thread.sleep } answer.setText(questionString); 睡眠是在问题出现在gui上之前执行的,因此它只是在问题和答案同时出现时立即出现。提问和回答只是JPanel,计时是JRadioButton 那么,在

我正在创建一个闪存卡程序,希望在弹出问题和回答之间有几秒钟的延迟。我一直在尝试使用线程。睡眠

question.setText(questionString);

if(timed.isSelected())
{
     delay();//uses thread.sleep
}

answer.setText(questionString);
睡眠是在问题出现在gui上之前执行的,因此它只是在问题和答案同时出现时立即出现。提问和回答只是JPanel,计时是JRadioButton


那么,在实际问题上,我是否可以推迟答案的出现,使其流畅?就像我在cmd提示符中使用println一样。Thread.sleep实际上会暂停运行它的线程。当您在事件调度线程上运行时,这可能是危险的,因为在睡眠运行时,您基本上会停止任何GUI更新,例如设置文本,然后停止GUI更新,直到您使用答案设置文本-问题永远不会被画出来


对于计时的非阻塞替代方案,请查看哪个选项查看类。该类允许您指定延迟,以及延迟过后要完成的操作,而无需暂停线程。

您看了吗?@Quilliom:添加一点详细信息并回答这个问题。对于原始海报,是的,使用摆动计时器。当然,细节中会有麻烦,所以尝试一下,如果你被卡住了,就在这里发布你的尝试。可能是重复的