.png图标未在JFrame窗口中加载

时间:2015-04-21 09:36:38

标签: java swing jbutton embedded-resource imageicon

a simple png image

import java.awt.*;
import javax.swing.*;

public class Program {
public static JButton button;
public static void main(String args[]){
    JFrame win=new JFrame("title");
    win.setVisible(true);
    win.setSize(500,500);
    win.setLayout(new FlowLayout());
    win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    ImageIcon i=new ImageIcon("icon.png");
    button=new JButton("hello",i);
    win.add(button);
    button.setToolTipText("click me");

}
}

当我运行文件时,我只是得到了文本"你好"按钮但没有图像。
(此图片是从http://icons.iconarchive.com/icons/iynque/flat-ios7-style-documents/512/png-icon.png

下载的

图像存储在项目src文件中。

3 个答案:

答案 0 :(得分:3)

图像不应该在src中,而应在主应用程序目录中,通常在上面。因此,请移动您的图标或将代码更改为:

ImageIcon i=new ImageIcon("src/icon.png");

您应该考虑将其添加到您的资源(因此它将被放置在jar中)并通过getResource()打开。示例中的下一个问题是,在通过调整大小或其他操作刷新窗口之前,它不会显示。最后添加这一行:

win.pack();

或其他会刷新窗口内容的方法。

答案 1 :(得分:0)

试试这个:    ImageIcon i = new ImageIcon(“src / icon.png”);

答案 2 :(得分:0)

getClass().getResource("icon.png")
如果你的图像文件在Program.java的同一目录下,

会这样做,并且在编译时,它确实被打包到Program.class所在的同一个目录中。