我有ArrayString[]announcement=new String[20]
有20个值,我想每5秒检索一次。我找不到任何解决方案,如何在不阻塞UI的情况下每5秒增加一次。
由于这个问题是用JavaFX标记的,我假设你想在检索到值后更新一些节点。如果您使用正常的线程实现,您必须用Platform.run稍后包装您的代码。但是如果你使用javafx.animation.时间轴,你不需要做额外的工作。
String[] announcement = new String[20];
AtomicInteger index = new AtomicInteger();
Timeline timeline= new Timeline(new KeyFrame(Duration.seconds(5), e->{
String msg = announcement[index.getAndIncrement()];
// Use this value to do some stuff on Nodes.
});
timeline.setCycleCount(announcement.length);
timeline.play();
你需要的是一个线程
<代码>线程s与您的程序一起运行,这样您就可以在程序仍在运行时运行较长的任务(例如下载文件),而不会冻结。每五秒钟为字符串设置一个值的程序示例(根据您的解释,我假设您正在这样做)如下所示:
import java.util.concurrent.TimeUnit;
class Main {
public static void main(String[] args) {
// Thread runs alongside program without freezing
String[] retrievalArary = new String[20];
Thread thread = new Thread(new Runnable() {
public void run() {
for (int i = 0; i < retrievalArary.length; i++) { // Run for the same count as you have items in your array
try {
TimeUnit.SECONDS.sleep(5); // Sleeps the thread for five seconds
} catch (InterruptedException e) {
e.printStackTrace();
}
retrievalArary[i] = Integer.toString(i); // Add the integer run count to the array
System.out.println(i); // Show progress
}
}
});
thread.start();
}
}
我无法确切地说出您想要实现什么,但您可以非常轻松地更改代码以满足您的需求。
问题内容: 我正在将一种布局转换为html; 一旦我在code / html / css中进行了更改,每次必须按F5。是否有任何简单的javascript / jQuery解决方案?即,在添加脚本之后,每5秒(或其他特定时间)重新加载整个页面。 问题答案: 如果必须在脚本中使用setTimeout,例如:
问题内容: 我想知道如何每x秒重绘和更新JPanel的背景…这是我的代码: 我的代码有2个问题:1-JPanel根本没有被绘制。2-第一张可以打印,然后每次打印数量增加一倍。有什么建议吗?先感谢您 更新:我以这种方式解决了这个问题: 更新2: 问题答案: 使用Swing计时器,
问题内容: 我从修改了自己需求的网站上获得了此代码: 在test.php中: 所以我想在链接div中每5秒调用一次test.php。我该怎么做呢? 问题答案: 试试看 希望这可以帮助。
问题内容: 我正在使用WOW.js和animate.css,现在我正在将CSS运行到Infinite。我想知道如何让我的课程在3秒钟内停止运行并再次开始无限运行? 我的html: 我的CSS类: 解决方案可以是JS或CSS3。 问题答案: 对于纯CSS3动画,在动画的每个单次迭代之间添加延迟的一种方法是修改关键帧设置,以使其产生所需的延迟。 在以下代码段中,正在执行以下操作: 动画的整个持续时间为
除了极少数例外 (一些文件系统操作的“同步”结束),没有一个 Vert.x Api 阻塞调用线程。 如果可以立即提供的结果,它将立即返回,你通常会提供一个handle来接收过一段时间的事件。 由于Vert.x API没有任何阻塞的线程,这意味着你可以使用Vert.x来处理只是使用小数目线程的大量并发。 常规阻塞API使用线程可能会阻塞: 从socket读取数据 向磁盘写入数据 向收件人发送一条消息
问题内容: 当用户选择在另一个线程中启动阻止进程的菜单项时,我试图在JavaFX 8应用程序中提供反馈。在我的实际应用程序中,它是文件下载,但是通过示例,我使用最少的代码创建了一个测试用例: 它的工作方式如下:当选择“开始”菜单项时,主菜单文本应立即更改为“正在运行…”,然后应附加“完成!”。经过5秒钟的模拟我的文件下载的睡眠。 实际上发生的是,即使我正在使用,在阻止过程完成 后 , 两个 文本更