繁体   English   中英

在后台处理某些工作的同时显示带有动画gif的JDialog

[英]show JDialog with animated gif while processing some work in background

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

这是我的代码:

公共无效createDialog()
{
d = new JDialog();
JLabel l = new JLabel(new ImageIcon(new URL(“ path_of_icon”))));
d.setSize(100,100);
d.add(升);
d.setVisible(真);
d.alwaysOnTop(真);
}

//现在如何调用此函数

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

谁能告诉我如何显示加载图像而不中断后台进程。 我是否需要使用SwingWorkerThread

SwingWorker是您最好的选择 ,因为它将为您管理多个线程。

这是有关它的更多信息http://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html

更新:

doInBackground在单独的(不是UI)线程上执行,通常用于较长的非UI进程。 done长过程后,完成方法将在UI线程上执行。 因此,在创建SwingWorker之前创建并显示您的对话框。 doneSwingWorker使用SwingWorker运行后台进程-隐藏对话框。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM