在我的java应用程序中我使用了一些jtables,并在循环中使用jtable.setvalueat(i,j)填充每个单元格。
当jtable1被填充时,填充Jtable2的循环开始时间小,依此类推。
一切都运行得很好,但我的应用程序似乎被冻结,所有单元格都是空白的,直到所有jtables和循环都完成,最后所有jtables一次显示完全填充。
如果我在每个循环结束后使用JOptionPane显示一些消息,我将看到这些单元格已经填满了该步骤。
我的问题:是否有任何方法或技巧在填充时显示单元格值,而不是等到循环结束?
非常感谢您的建议。
答案 0 :(得分:1)
在event dispatch thread之后填充一个TableModel
的循环阻止API;干预JOptionPane
允许EDT处理等待的更新。 SwingWorker
是publish()
中期结果的常用方式;示例见Concurrency in Swing和{{3}}。