把一个gif放在JOptionPane中

时间:2015-06-22 17:56:25

标签: java swing gif joptionpane

我试图将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);

}

2 个答案:

答案 0 :(得分:4)

完全有可能,您的代码必须正常工作。目前我正在运行您的代码,我看到以下内容:

enter image description here

我认为您在访问加载图标的网址时遇到问题。也许DNS存在问题,或者您可能在代理服务器后面对某些网址的访问权限有限。

在浏览器中尝试以下网址:

http://www.archisevilla.org/wp-content/themes/archisevilla/images/loading.gif

如果您在浏览器中看到此加载gif图标,则必须在JOPtionPane中看到。

如果您在浏览器中看到 loading.gif 图标,但看不到JOPtionPane,请尝试以下操作:

  1. 下载并将其写入您正在编写上述代码的软件包。例如,如果您有一个名为Test.java的类,请将 loading.gif 文件放在与Test.java相同的包中。

  2. Test.java的主要方法中编写以下代码:

    ImageIcon icon = new ImageIcon(Test.class.getResource("loading.gif").getFile());
    JOptionPane.showMessageDialog(null, "Cerrando sesión...", "About", JOptionPane.INFORMATION_MESSAGE, icon);
    
  3. 现在您应该在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);
    }
}