gpt4 book ai didi

java - 在指定时间调用方法

转载 作者:行者123 更新时间:2023-11-29 06:25:09 25 4
gpt4 key购买 nike

如何每 n 秒调用一次方法?

我想用 Swing 和 CardLayout 每隔 n 秒放映一次幻灯片它必须显示调用不同方法的不同图像

最佳答案

import java.util.*;

class MyTimer extends TimerTask
{
public void run()
{
//change image
}
}

然后在您的 main 中您可以安排任务:

Timer t = new Timer();
t.schedule(new MyTimer(), 0, 5000);

第一个数字是初始延迟,第二个是调用 TimerTaskrun() 之间的时间:5000 是 5 秒。

正如 BalusC 所指出的,您通常会在 AWT 事件线程上分派(dispatch) Swing 更改。在这个简单的原因中,当从外部线程更改背景时不应该产生问题,在任何情况下你都应该使用

public static void SwingUtilities.invokeLater(Runnable whatToExecute)

在正确的线程上发送您的更改。

如果您更喜欢 BalusC 方法,只需使用 ActionListener:

public void BackgroundChange implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
//change bg
}
}

javax.swing.Timer t = new javax.swing.Timer(5000, new BackgroundChange());

它们都提供相同的功能,但后者已经准备好与 Swing 线程一起工作,保持兼容性并避免奇怪的同步问题。

关于java - 在指定时间调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2989722/

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