gpt4 book ai didi

循环中的java setText

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

您好,我正在尝试在循环中将 setText 设置为 JTextArea,但我想这样做,在每个循环中,每一行都将在框架中看到。

我尝试过 Thread.sleep(500),因为我认为循环太快而无法设置每一行,但它没有帮助。

这可能吗??去做吧 ?我想这样做是为了向用户展示从数据库下载文件的进度。

最佳答案

基于事件的单线程 GUI 的性质使得更改仅在事件完全处理(从事件处理程序返回)后可见

阻塞事件派发线程无济于事(甚至会使整个应用程序无响应)

你应该使用一个定时器来模拟一次加一,中间有一个延迟

final String[] lines;
for(int i=0; i<10; i++){
Timer t = new Timer(500*i,new ActionListener(){
int ind=i;
void actionPerformed(ActionEvent e){
area.setText(area.getText() + "\n ...");
}
});
t.start();
}

这会创建 10 个计时器,每个计时器在一段时间后添加一行(增量为 500)
有一种更好的方法可以重复使用计时器并在所有操作完成后停止它,但它有点冗长

关于循环中的java setText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6283166/

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