在后台处理一些工作时,用动画gif显示JDialog

时间:2014-03-20 19:39:57

标签: java swing jdialog swingworker

我正在尝试创建一个JDialog,它将显示一个动画图像,直到后台进程完成。我创建了一个显示动画GIF JDialog但是当我在实际进程开始之前将它放入时它只显示空白的JDialog。

这是我的代码:

  

public void createDialog()
{
       d =新的JDialog();
       JLabel l =新的JLabel(新的ImageIcon(新的URL(" path_of_icon")));
       d.setSize(100,100);
       d.add(升);
       d.setVisible(真);
       d.alwaysOnTop(真);
}

     

//现在我该如何调用此函数

     

createDialog();
doBackgroundProcess(); //就像从数据库中获取数据一样   d.dispose();

有人可以告诉我如何在不中断后台进程的情况下显示加载图像。我是否需要使用SwingWorkerThread

1 个答案:

答案 0 :(得分:1)

SwingWorker是您的最佳选择,因为它会为您管理多个主题。

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

的更多信息

更新:

doInBackground在单独的(非UI)线程上执行,通常用于很长的非UI进程。当长进程完成时,在UI线程上执行方法done。因此,在创建SwingWorker之前创建并显示对话框。在SwingWorker中使用done运行后台流程 - 隐藏对话框。