gpt4 book ai didi

java - 使用java通过定时器交替图像

转载 作者:行者123 更新时间:2023-12-01 05:48:59 25 4
gpt4 key购买 nike

由于我不是计算机科学专业,因此将我的编程愿望转化为实际程序时遇到一些困难。它基本上可以归结为以下内容:如何在标签上交替图像,以每个图像特定的时间量显示每个图像。

所以:假设我有图像 A 和 B;我希望用户看到 A 1000 毫秒,B 200 毫秒。这将继续循环,直到用户按下某个键。

现在,我能够将图像加载到面板上,甚至非常容易,并且我已经设法使用 KeyListener 和其他东西来捕获用户输入,这一切都比我预期的要好得多,而且容易得多。我也知道如何使用 while、for 和 do..while 等循环结构,但是这个计时器业务是阴暗的。

我看到各种使用线程的东西,但我真的不需要它。这与高效的编程或良好的代码无关,而只是为了演示一些东西。任何帮助将不胜感激!

最佳答案

使用 SwingWorker<Void, Void> 。 SwingWorker 的 doInBackground 方法应如下所示:

@Override
protected Void doInBackground() {
try {
while (true) {
displayImage(imageA);
Thread.sleep(1000L);
if (isCancelled()) {
return null;
}
displayImage(imageB);
Thread.sleep(200L);
if (isCancelled()) {
return null;
}
}
}
catch (InterruptedException e) {
// ignore
}
return null;
}

private void displayImage(final Icon image) {
SwingUtilituies.invokeLater(new Runnable() {
@Override
public void run() {
// display the image in the panel
}
});
}

keylistener 应该简单地取消 SwingWorker。

关于java - 使用java通过定时器交替图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5179569/

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