1

JLabel使用ImageIcon.

我有一个固定大小的 JLabel,它将显示完美适合它的文本或图像。我试图让它显示文本“正在加载...”,然后立即让它从 URL 加载图像并用它替换文本。

...

public void setImage()
{
   URL url = new URL("http://www.website.com/pathtoimage/image.png");

   jLabel1.setIcon(null);
   jLabel1.setText("Loading...");

   ImageIcon ii = new ImageIcon(url);
   jLabel1.setIcon(ii);
}

...

(假设异常被正确捕获并进行了所有必需的导入,并且图像存在且有效。)

上面的代码不显示文字;所发生的只是应用程序挂起,因为图像在几分之一秒后被下载并显示,大部分与预期的一样。在继续用图像替换它之前,如何强制摇摆更新 JLabel?或者,您知道实现这一目标的另一种更有效的方法吗?

4

1 回答 1

4

查看SwingWorker并在此处阅读有关 GUI/Threads/Background Threads 的信息(不仅是我链接的第一页,还有后面的)Event Dispatch Thread;)

于 2011-07-31T11:20:41.373 回答