Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java swing不';在jbuttons上不显示png图标_Java_Image_Swing_Runtime Error_Png - Fatal编程技术网

Java swing不';在jbuttons上不显示png图标

Java swing不';在jbuttons上不显示png图标,java,image,swing,runtime-error,png,Java,Image,Swing,Runtime Error,Png,我用java编写了一个简单的JFrame,并添加了一个按钮。 然后我在按钮上添加了一个.png图标,但它一直给我一个例外。 (我对.jpg图标没有任何问题,而且效果很好) 这是我的代码和例外情况 public class Test { static JFrame mainFrame; public static void main(String[] args) { mainFrame = new JFrame("a"); mainFrame



我用java编写了一个简单的JFrame,并添加了一个按钮。 然后我在按钮上添加了一个.png图标,但它一直给我一个例外。 (我对.jpg图标没有任何问题,而且效果很好)

这是我的代码和例外情况

public class Test
{
    static JFrame mainFrame;
    public static void main(String[] args)
    {
        mainFrame = new JFrame("a");
        mainFrame.setSize(300, 300);
        mainFrame.setLocation(50, 50);
        JButton btn = new JButton();
        ImageIcon icon = new ImageIcon("C:\\a.png");
        btn.setIcon(icon);
        btn.setSize(100, 100);
        btn.setLocation(50, 50);
        mainFrame.add(btn);
        mainFrame.setVisible(true);
    }
}
例外情况:

sun.awt.image.PNGImageDecoder$PNGException: Broken file
    at sun.awt.image.PNGImageDecoder.pngassert(PNGImageDecoder.java:94)
    at sun.awt.image.PNGImageDecoder.handleChunk(PNGImageDecoder.java:107)
    at sun.awt.image.PNGImageDecoder.getData(PNGImageDecoder.java:726)
    at sun.awt.image.PNGImageDecoder.produceImage(PNGImageDecoder.java:252)
    at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:269)
    at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:205)
    at sun.awt.image.ImageFetcher.run(ImageFetcher.java:169)
sun.awt.image.PNGImageDecoder$PNGException: Broken file
    at sun.awt.image.PNGImageDecoder.pngassert(PNGImageDecoder.java:94)
    at sun.awt.image.PNGImageDecoder.handleChunk(PNGImageDecoder.java:107)
    at sun.awt.image.PNGImageDecoder.getData(PNGImageDecoder.java:726)
    at sun.awt.image.PNGImageDecoder.produceImage(PNGImageDecoder.java:252)
    at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:269)
    at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:205)
    at sun.awt.image.ImageFetcher.run(ImageFetcher.java:169)

代码很好,图像文件有问题

使用.png文件和.jpg文件应该没有区别<代码>损坏的文件-在我看来,您的png文件已损坏。在网上搜索更多信息。简单的关键字,如“破碎的png文件”应该会给出一些结果。当你收到一条你不明白的错误信息时,这不是你要做的第一件事吗?使用在线图像运行你的代码,就像。如果这样做有效,您就会知道问题出在png文件中。