当前位置: 首页 > 知识库问答 >
问题:

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

卫飞鹏
2023-03-14

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

这是我的代码:


{
d=new JDialog();
JLabel l=new JLabel(new ImageIcon(new URL("path_of_icon")));
d.set大小(100,100);
d.add(l);
d.set可见(true);
d.alwaysOnTop(true);
}

//现在如何调用这个函数

createDialog()
doBackgroundProcess()//例如从数据库中提取数据;

谁能告诉我如何在不中断背景处理的情况下显示加载图像。我需要使用SwingWorker还是Thread。

共有1个答案

彭弘方
2023-03-14

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

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

更新:

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

 类似资料:
  • 问题内容: 我想在应用程序中显示GIF动画图像。我发现,Android本身并不支持动画GIF的困难方式。 但是,它可以使用AnimationDrawable显示动画: 开发>指南>图像和图形> Drawables概述 该示例使用在应用程序资源中另存为帧的动画,但是我需要直接显示动画gif。 我的计划是将动画GIF分解为帧,并将每个帧作为可绘制对象添加到AnimationDrawable中。 有谁知

  • 问题内容: 您好,我正在使用Swing在Java 1.6上编写GUI应用程序。 我有一个弹出屏幕,该窗口在加载Swing gui时以及稍后会显示gif动画。 我的弹出屏幕是一个JDialog。动画应显示在通过以下方式添加到Jdialog的JLabel上: 现在的事情是,动画仅在gui加载后显示。我相信在GUI加载时(这是我的应用程序中的繁重操作),EDT太忙了,无法运行动画。 现在的问题是,将GU

  • 问题内容: 我正在尝试制作一个程序来使用Tkinter显示动画GIF。这是我最初使用的代码: test.gif是以下GIF: 这可以正常工作,但是GIF的质量很糟糕。我尝试将其更改为以下内容: 但是,这偶尔会闪烁图像。虽然图片看起来不错,但是作为程序却毫无用处。我究竟做错了什么? 问题答案: 首先,您要为每个帧创建一个新的画布对象。最终,您将有成千上万的图像相互叠加。这是非常低效的;当您开始具有数

  • 在你把我和另一个类似的问题联系起来之前,比如这个或那个。我要说的是,我完全按照答案所说的做了,但我的gif不会像它应该做的那样动画化(尽管它是显示出来的)。 下面是我在一个函数中所做的操作,该函数通过主应用程序函数堆栈显示。导航容器和堆栈中的屏幕。导航器。(我使用React导航在屏幕上移动,这里的上下文是按下一个按钮,它显示DetailsScreen函数的内容) 这将显示我的gif的第一个静态图像

  • 它与文件一起工作很好,但是当我使用文件时,它是空的。我在某处读到了将重命名为,但它只显示一帧动画gif而没有动画。有什么想法吗?

  • 我对编程和电话差距非常陌生。在计算机上测试的GIF的动画似乎工作正常,但是当导出到api并安装到我的手机中时。动画是滞后和故障。你知道为什么会发生这种情况吗?谢谢。