java JFrame.setIconImage()无法正常工作

zlwx9yxi  于 2023-01-04  发布在  Java
关注(0)|答案(4)|浏览(165)
public class RType extends JFrame {

private static ImageIcon ICON = new ImageIcon("craft.png");

public RType() {

    add(new Board());
    setIconImage(ICON.getImage());

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(400, 300);
    setLocationRelativeTo(null);
    setTitle("R - Type");
    setResizable(false);
    setVisible(true);
}

public static void main(String[] args) {
    new RType();
}
}

在我尝试为JFrame设置一个图标图像之后,这段代码仍然可以正常工作并进行编译,但没有任何区别。我仍然看到默认的java图标。有人能检测到这个问题吗?“craft.png”是20 x20像素。它被正确地放置在resource文件夹中(没有ClassLoader-exceptions,也没有其他编译时错误)。

t2a7ltrp

t2a7ltrp1#

ImageIcon(String)需要文件引用,如果图标是嵌入资源,则需要提供URL
就像...

private static ImageIcon ICON = new ImageIcon(RType.class.getResource("/craft.png"));

假设craft.png位于默认目录而不是某个子目录中

uz75evzq

uz75evzq2#

虽然我尝试了许多方法,但始终无法在JFrame的ULHC中正确设置图标,但我能够在任务栏中显示一个全尺寸的图标(194 × 177像素),这对于本项目来说已经足够了。
这就是我的工作:

String sImageFileName = "/lb/icons/favicon.png";
    URL urlImageFileName = getClass().getResource(sImageFileName);

    if (urlImageFileName == null)
        System.out.println( "urlImageFileName: " + urlImageFileName + " Not Found." );
    else {
        ImageIcon oImageIcon = new ImageIcon(getClass().getResource(sImageFileName));
        setIconImage(oImageIcon.getImage());
    }  // end else

/lb是当前jar中出现的pkg的根。
希望这个有用。

n53p2ov0

n53p2ov03#

我也无法设置图像首先复制图像,如果您使用的是Eclipse,请单击要存储的包,然后使用Ctrl+v粘贴
如果粘贴到默认包中,则无法访问该包

a2mppw5e

a2mppw5e4#

  • -已弃用--
    IntelliJ IDEA有时无法识别来自src文件夹的路径,但它可以识别来自out文件夹的路径,所以我建议编译您的progect并从那里获取路径。
    示例:
String iconPath = "out/production/projectName/com/media/icon.png";
jframe.setIconImage(new ImageIcon(iconPath).getImage());

希望这还能帮到什么人。

相关问题