.png 图标未加载到 JFrame window
.png icon not loading in a JFrame window
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");
}
}
当我 运行 文件时,我只得到按钮上的文本 "hello" 但没有图像。
(此图片是从 http://icons.iconarchive.com/icons/iynque/flat-ios7-style-documents/512/png-icon.png 下载的)
图像存储在项目 src 文件中。
试试这个:
ImageIcon i=new ImageIcon("src/icon.png");
图像不应在 src
中,而应在主应用程序目录中,通常在上面。因此,移动您的图标或将代码更改为:
ImageIcon i=new ImageIcon("src/icon.png");
您应该考虑将其添加到您的资源中(因此它将被放置在 jar 中)并通过 getResource()
打开。示例中的下一个问题是它不会显示,直到 window 通过调整大小或其他操作刷新。在末尾添加这一行:
win.pack();
或其他刷新 window 内容的方法。
getClass().getResource("icon.png")
会这样做,如果你的图像文件在 Program.java 的相同目录下,并且在编译时,它确实被打包到 Program.class
所在的相同目录中。
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");
}
}
当我 运行 文件时,我只得到按钮上的文本 "hello" 但没有图像。
(此图片是从 http://icons.iconarchive.com/icons/iynque/flat-ios7-style-documents/512/png-icon.png 下载的)
图像存储在项目 src 文件中。
试试这个: ImageIcon i=new ImageIcon("src/icon.png");
图像不应在 src
中,而应在主应用程序目录中,通常在上面。因此,移动您的图标或将代码更改为:
ImageIcon i=new ImageIcon("src/icon.png");
您应该考虑将其添加到您的资源中(因此它将被放置在 jar 中)并通过 getResource()
打开。示例中的下一个问题是它不会显示,直到 window 通过调整大小或其他操作刷新。在末尾添加这一行:
win.pack();
或其他刷新 window 内容的方法。
getClass().getResource("icon.png")
会这样做,如果你的图像文件在 Program.java 的相同目录下,并且在编译时,它确实被打包到 Program.class
所在的相同目录中。