gpt4 book ai didi

for 循环中的 Java Thread.sleep()

转载 作者:行者123 更新时间:2023-12-04 00:25:57 29 4
gpt4 key购买 nike

public void playPanel() throws IOException{

for(int i = 0; i<listData.size(); i++){
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ascii.setText(listData.get(i));
}

}

我想做的是遍历从 ascii JTextArea 复制的 listData ArrayList 类型。它应该是一个动画,所以当他们点击播放时,该功能会显示第一张幻灯片,等待一秒钟,然后是下一张幻灯片,等等。

当我运行它时,唯一发生的事情是暂停,屏幕上没有任何变化,直到它只显示最后一张幻灯片。我不确定它有什么问题

最佳答案

您永远不应该在 Swing 事件线程上调用 Thread.sleep(...),除非您的目标是让整个应用程序进入休眠状态,使其无用。相反,摆脱 for 循环,并使用 Swing Timer 进行“循环” .像这样的东西应该可以工作,或者接近一个正常运行的解决方案(警告:代码尚未编译或测试):

int delay = 1000;
new Timer(delay, new ActionListener() {
private int i = 0;

@Override
public void actionPerformed(ActionEvent e) {
if (i < listData.size()) {
ascii.setText(listData.get(i));
} else {
((Timer) e.getSource()).stop();
}
i++;
}
}).start();

关于for 循环中的 Java Thread.sleep(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26938644/

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