模拟长时间运行的操作

时间:2011-10-30 20:16:06

标签: java swing jprogressbar

我如何模拟长时间运行的数据库操作?我的要求是在操作完成之前显示一个带有JProgressBar的对话框。

1 个答案:

答案 0 :(得分:6)

使用后台线程(例如SwingWorker提供的线程)运行for循环,从1到10,循环内部有Thread.sleep。然后,如果它是一个确定模式JProgressBar,你可以通过将10 *循环索引传递给进度条来更新它的值(当然,在Swing线程,EDT上这样做)。

修改
@James Poulson:如果您使用的是SwingWorker对象,则可以使用publish/process方法和done方法在EDT上进行更新。如果您正在使用自己的后台线程,那么您一定要在Runnable中包装任何Swing调用组,并使用invokeLater在EDT上对其进行排队。