gpt4 book ai didi

java - 使用 "Real-Time Feeling"将行添加到 JTable

转载 作者:行者123 更新时间:2023-11-30 08:27:51 25 4
gpt4 key购买 nike

我正在尝试制作“实时感受 JTable”。我用 JTable 制作了 GUI,然后有一个名为 START 的按钮。当我点击这个按钮时,程序将调用下面的 start() 方法。 (这只是一个例子)。添加行没问题,效果很好。但问题是,行只在一次(也许程序完成 start() 方法,行一起出现。)我的 start() 中还有 1000 条语句方法。这不是实时的感觉。我应该等到启动方法完成。然后一次添加了 1000 行。

void start(){    
int a = 3+3;
addRow(new String[]{"a is 6"})
int b = 4+4;
addRow(new String[]{"b is 8 "})
}

我要做的只是“实时感受”,我想看到添加行一个一个,而不是一次。你能明白我的目的吗?想象一下“Fiddler”程序。你可以很容易地理解。谁能帮我?我应该创建一个线程吗?

感谢阅读,抱歉表达不当(英语不是我的语言)

最佳答案

这是因为 Swing 线程的工作方式。只有一个线程处理所有渲染、更新等。您对 start() 方法的处理发生在该渲染线程内,因此在您从该方法返回之前,GUI 上的任何其他内容都不会响应。

您需要做的是使用 SwingWorkerThreadPoolExecutor 并将处理工作转移到另一个线程。随着处理的继续,它可以定期更新 GUI。

http://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html

请注意,通过这样做,人们可能会多次单击按钮并在第一个按钮完成之前再次调用 start()。您需要考虑并处理这种情况 - 例如,在第一个按钮完成之前禁用该按钮。

关于java - 使用 "Real-Time Feeling"将行添加到 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20582329/

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