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

标签 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");

}
}

当我运行该文件时,我只在按钮上看到文本“hello”,但没有图像。
(此图片是从http://icons.iconarchive.com/icons/iynque/flat-ios7-style-documents/512/png-icon.png下载的)

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

最佳答案

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

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

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

win.pack();

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

关于java - .png 图标未在 JFrame 窗口中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29768332/

相关文章:

java - mvn依赖如何:analyze work?

java - 实现MVP的最佳方法

java - 使用 Swing 设计聊天布局

java - 在 Jsplitpane 中同时显示两个面板且同一面

java - GridBagLayout 上的 swing 替换组件

java - 如何处理 JOptionPane 中的取消按钮

java - 类型与有界通配符不匹配? super 类型

java - kubernetes 中的 Selenium - 只允许本地连接

java - 将图像添加到 JLabel,并在 GridLayout 中显示标签

Java-如何通过单击按钮添加更多文本字段?