【问题标题】:Show a loading gif logo while content is loaded using thread in java swing在使用 java swing 中的线程加载内容时显示加载 gif 徽标
【发布时间】:2023-03-31 04:15:01
【问题描述】:

当一些网络请求完成时,我试图在 jlabel 中显示加载 gif。我做了一些研究,发现我需要使用事件调度线程来做到这一点。但它似乎将这个任务放在一个队列中以便稍后执行。 我想并行执行,这意味着,当请求完成时,屏幕上会显示一个 gif,以通知客户端正在完成某些任务。

但是这个gif只有在请求完成后才会出现。

我使用了 invokeLater 和 Swing 计时器但没有成功。也许我的代码有问题。

我已经执行了这段代码:

label.setVisible(true);
label.getParent().revalidate();
label.getParent().repaint();

在可运行的代码中。

我做错了吗?你能帮帮我吗?

【问题讨论】:

  • 您需要在单独的线程中完成其他任务,并将所有内容保持在 EDT 上。

标签: java multithreading swing


【解决方案1】:

您需要使用SwingWorker 线程。所有与摇摆相关的事情,如窗画和活动,都将在 EDT 上执行。您将执行后台任务,例如在后台线程 (SwingWorker) 中请求和检索网页。

API:https://docs.oracle.com/javase/7/docs/api/javax/swing/SwingWorker.html

信息:http://en.wikipedia.org/wiki/SwingWorker

【讨论】:

  • 谢谢,我已经做到了,现在!您提供的链接非常好。
猜你喜欢
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多