将图标设置为JFrame

时间:2015-05-26 13:31:16

标签: java image swing awt imageicon

我已尝试过以下代码。

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);
    }

Alsow我已经尝试了下面给出的代码。

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());

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

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

我也试过了。

/pro_root/resources/dbs.ico

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

4 个答案:

答案 0 :(得分:4)

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

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

不。没有ico类型。

答案 1 :(得分:1)

as the answer is given above. 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

答案 2 :(得分:0)

根据您的结构,dbs.ico与您的类的包一起放在根目录中。

所以代码应该可以工作

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

答案 3 :(得分:0)

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

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