将图标设置为 JFrame

Set icon to JFrame

我试过下面的代码。

try {
        this.setIconImage(ImageIO.read(new File("/resources/dbs.ico")));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        JOptionPane.showMessageDialog(null, e.getMessage());
        System.exit(0);
    }

我也尝试了下面给出的代码。

yourFrame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource(Filepath)));

我也试过下面给出的代码。

URL iconURL = getClass().getResource("/some/package/favicon.png");
ImageIcon icon = new ImageIcon(iconURL);
frame.setIconImage(icon.getImage());

但是 none 所有这些解决方案都有效。 目录结构为:

/pro_root/com/girishpro/multirecharge/resources/dbs.ico

下面我也试过了。

/pro_root/resources/dbs.ico

dbs.ico 是我想设置为 JFrame 图标的图像。请帮我解决这个问题。

根据您的结构,dbs.ico 与您的 类.

的包一起放置在根目录中

所以代码应该可以工作

ImageIO.read(getClass().getResourceAsStream("/dbs.ico"))

尝试下面的代码,根据JFrame的class验证图片的路径。

        try {
            SetIconImage(ImageIO.read(getClass().getResource("/images/image.ico")));
        } catch (IOException e) {
            e.printStackTrace();
        }

使用 ImageIO.getReaderFileSuffixes() 作为 Java 运行 时间可以读取的文件类型数组。它可能看起来像这样(现在这台机器的实际例子):

type: bmp
type: jpg
type: wbmp
type: jpeg
type: png
type: gif

没有。没有 ico 类型。

给出答案. In java, .ico is partially or not supported. So to everyone who is finding correct solution, please ensure that for icon, you are not using .ico file for icon. Thanks to Andrew Thompson