在while循环中刷新jframe中的组件

时间:2014-08-26 11:33:45

标签: java swing jscrollpane

我在数据库中有一个表包含图像路径
在查询结果的while循环内,我将图像添加到JScrollPane

while (rs.next()) {///loop on the image paths from database 
 //// i added here the images to JScrollPane
}

但框架一直处于冻结状态,直到JScrollPane中设置的所有图像都显示给用户

我需要的是: 逐个显示JScrollPane中的图像并在不冻结框架的情况下排序?!


注意:我使用Thread并解决了问题,但排序

存在问题

2 个答案:

答案 0 :(得分:5)

使用SwingWorker执行该任务。粗略地说:

doInBackground方法中,您将从数据库中提取图片,并通过在publish方法中调用doInBackground方法发布这些图片。覆盖process方法并从那里更新JScrollPane。因为它在EDT上运行,应该在其中创建和更新Swing组件。

答案 1 :(得分:1)

您应该在另一个线程中处理耗时的循环。如果你不这样做,它将冻结GUI直到完成。

This链接包含以最基本的形式执行此操作的方法。