java 我无法正确显示ImageIcon

shstlldc  于 5个月前  发布在  Java
关注(0)|答案(2)|浏览(55)

一切正常,除了当我按下run时,它不显示JFrame中标签的图标。有人知道如何解决这个问题吗?

public class Frame extends JFrame
{
    private final int speed=5;
    JLabel label;
    ImageIcon icon;
    public void create() {
        this.setSize(240,228);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null);
        this.addKeyListener(this);
        this.setLayout(null);
        icon=new ImageIcon("rocket.png");
        label=new JLabel();
        label.setBounds(0,0,100,100);
        label.setIcon(icon);
        this.add(label);
        this.setVisible(true);
    }
}

字符串
我试过重命名这个文件,把它放在代码中的几个不同的位置,甚至查找了一两个教程,但都没有帮助。

r6vfmomb

r6vfmomb1#

正如评论中提到的,使用ImageIO.read()而不是ImageIcon,因为ImageIcon不会抛出异常,而是产生一个1x1的空白图像,这使得更难找到与之相关的错误。至于你的错误,唯一可能无法显示ImageIcon的情况是您输入了错误的位置。您在ImageIcon中写入了"rocket.png",没有提供任何位置。这使得程序在代码文件所在的同一个文件夹中找到图像。因此,提供图像的完整位置,而不仅仅是输入其名称。因此,它应该看起来像这样:

icon = new ImageIcon("src\res\rocket.png");

字符串

sbdsn5lh

sbdsn5lh2#

更改此:

icon=new ImageIcon("rocket.png");

字符串
收件人:

icon=new ImageIcon("src\\rocket.png");

相关问题