我试图将Gif图像添加到模拟图像中#34;正在加载"在JOptionPane中没有结果。 我尝试使用带有本地图像的URL,以及图像的绝对路径,但我只能在其中放置图像(png,jpg ...)。我的最后一次尝试就是这个
final ImageIcon icon = new ImageIcon(new URL("http://www.archisevilla.org/wp-content/themes/archisevilla/images/loading.gif"));
JOptionPane.showMessageDialog(null, "Cerrando sesión...", "About", JOptionPane.INFORMATION_MESSAGE, icon);
当我运行此代码时,JOptionPane图像的占位符显示为空。
所以我想知道:可以在一个JOptionPane中放置一个GIF,甚至可以放在一个JFrame中吗?
这是我使用
的代码private void cerrarsesion() throws Exception {
this.dispose();
String path = "/com/icono/loading.gif";
URL url = this.getClass().getResource(path);
System.out.println(url);
ImageIcon icon = new ImageIcon(url);
createTimerClose(10).start();
JOptionPane.showMessageDialog(null, "Cerrando sesión...", "About", JOptionPane.INFORMATION_MESSAGE, icon);
new Login().setVisible(true);
}
答案 0 :(得分:4)
完全有可能,您的代码必须正常工作。目前我正在运行您的代码,我看到以下内容:
我认为您在访问加载图标的网址时遇到问题。也许DNS存在问题,或者您可能在代理服务器后面对某些网址的访问权限有限。
在浏览器中尝试以下网址:
http://www.archisevilla.org/wp-content/themes/archisevilla/images/loading.gif
如果您在浏览器中看到此加载gif图标,则必须在JOPtionPane
中看到。
如果您在浏览器中看到 loading.gif 图标,但看不到JOPtionPane
,请尝试以下操作:
下载并将其写入您正在编写上述代码的软件包。例如,如果您有一个名为Test.java
的类,请将 loading.gif 文件放在与Test.java
相同的包中。
在Test.java
的主要方法中编写以下代码:
ImageIcon icon = new ImageIcon(Test.class.getResource("loading.gif").getFile());
JOptionPane.showMessageDialog(null, "Cerrando sesión...", "About", JOptionPane.INFORMATION_MESSAGE, icon);
现在您应该在JOptionPane
对话框中看到动画loading.gif。如果你现在看到loading.gif,你应该尝试从java代码访问该URL找到问题。有时,防病毒或防火墙会禁止访问java.exe(您的jvm)等应用程序以进行出站或入站流量。也许你的问题是这样的。
但对您的问题的答案是肯定的。可以在JOptionPanes或JFrame中加载和显示GIF文件。
祝你好运。
答案 1 :(得分:2)
这样做对我有用。
import javax.swing.*;
import java.net.*;
public class TestIcon
{
public static void main(String[] args) throws Exception
{
final ImageIcon icon = new ImageIcon(new URL("http://www.archisevilla.org/wp-content/themes/archisevilla/images/loading.gif"));
JOptionPane.showMessageDialog(null, "Blah blah blah", "About", JOptionPane.INFORMATION_MESSAGE, icon);
}
}