gpt4 book ai didi

java - Java中延迟函数调用而不暂停应用程序

转载 作者:行者123 更新时间:2023-12-01 22:20:17 26 4
gpt4 key购买 nike

我希望我的应用程序在标签中显示某些内容几秒钟,然后进行更改。但我不希望我的应用程序在这段时间处于 hibernate 状态。它必须具有功能性。

wait()sleep() 将使我的应用程序在此期间无法工作。 Java中是否有像javascript的setTimeout()那样,会继续执行代码,并在一段时间后执行一行?

最佳答案

如果您不想包含更复杂的库,您可以使用 javax.swing.Timer (如@VGR所述),java.util.concurrent.ScheduledExecutorServicejava.util.Timer .

使用javax.swing.Timer的示例:

JLabel label = new JLabel("Hello");

Timer timer = new Timer(15000, e -> label.setText("Bye"));

timer.setRepeats(false);
timer.start();

使用 ScheduledExecutorService 的示例(请记住,涉及 UI 组件的实际逻辑可能必须从 GUI 线程 ( AWT event dispatch thread in case of Swing ) 运行,而不是执行程序的线程):

ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
JLabel label = new JLabel("Hello");

Runnable task = () -> SwingUtilities.invokeLater(() -> label.setText("Bye"));

executor.schedule(task, 15, TimeUnit.SECONDS);

执行器运行后台线程,因此当您不再需要它时应该将其关闭。

关于java - Java中延迟函数调用而不暂停应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com