Java 文本不会延迟更改
我在另一个类中有一个标签,我正在另一个组件的操作中更改此标签的文本。无论如何,我已经尝试过像Thread.sleep(300)这样的延迟,甚至实现了我自己的方法,比如Java 文本不会延迟更改,java,swing,Java,Swing,我在另一个类中有一个标签,我正在另一个组件的操作中更改此标签的文本。无论如何,我已经尝试过像Thread.sleep(300)这样的延迟,甚至实现了我自己的方法,比如 private void waitTime(long WaitTime){ long waitUntil = System.currentTimeMillis() + WaitTime; while(System.currentTimeMillis() != waitUntil);
private void waitTime(long WaitTime){
long waitUntil = System.currentTimeMillis() + WaitTime;
while(System.currentTimeMillis() != waitUntil);
}
它运行良好,但文本在延迟之前没有改变。是否有一个替代的延迟,文本实际上会改变自己,然后延迟
if(frame.Index == 10){
frame.label.setText("Wow, you're more patient then I am, you win.");
waitTime(3000);
if(frame == null) return;
System.exit(1);
}
- 您正在将Swing事件线程以及整个应用程序与
一起休眠。因此,您不希望在Swing事件线程(也称为事件分派线程或EDT)上使用该线程thread.sleep(…)
- 相反,使用计时器,而不是
线程。睡眠(…)
- 另一种方法是向用户抛出带有所需消息的JOptionPane,然后在JOptionPane返回时退出应用程序。通过这种方式,您可以保证用户在应用程序退出之前至少看到了选项窗格,并希望看到其消息