Java绘制图标不适用于背景图像

Java绘制图标不适用于背景图像,java,swing,paintcomponent,imageicon,Java,Swing,Paintcomponent,Imageicon,我似乎在JFrame上绘制背景图像时遇到了问题。所有其他图标都正确绘制,但背景图像似乎被跳过。变量backgroundImg是一个ImageIcon(与我的大多数其他图标一样声明),它应该设置为我的JFrame的背景,其他图标将被绘制在它上面。图形功能可能是Java不在多个图标上绘制,但我不确定。代码如下: private ImageIcon backgroundImg = new ImageIcon("image/back.PNG"); private String name;

我似乎在JFrame上绘制背景图像时遇到了问题。所有其他图标都正确绘制,但背景图像似乎被跳过。变量backgroundImg是一个ImageIcon(与我的大多数其他图标一样声明),它应该设置为我的JFrame的背景,其他图标将被绘制在它上面。图形功能可能是Java不在多个图标上绘制,但我不确定。代码如下:

private ImageIcon backgroundImg = new ImageIcon("image/back.PNG");
    private String name;
    private long score=0;
    private static final Dimension backgroundSz = new Dimension(1024,768);
...................................................
public GamePanel()
{
setPreferredSize(backgroundSz);
setBackground(Color.black);
}

public void paintComponent(Graphics g)
{
    super.paintComponent(g);

    this.backgroundImg.paintIcon(this, g, backgroundImg.getIconWidth(), 
            backgroundImg.getIconHeight());


}
再进一步解释一下这个问题:背景图像应该是一个星域,应该画在主游戏面板上。但是,每次结果都是黑色背景(如背景色中设置的)。图像大小与帧大小相同。游戏开始后,所有其他图像都正确绘制,唯一的问题是背景图片。删除绘制其他图像的大部分代码后,背景图像仍不会加载

现在有x,y参数,而不是宽度/高度,这似乎是错误的

一般来说,我有点不喜欢paintIcon方法,会存储图像并执行以下操作:

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawImage(backgroundImg.getImage(), 0, 0, null);
}

考虑提供一个说明你的问题的方法。这将减少混乱和更好的响应MadProgrammer:我唯一能发布的问题示例是窗口截图。那会更有帮助吗?mKorbel:丢失的油漆图标在哪里?…窗口的截图。那会更有帮助吗?“不,不太好。@MadProgrammer让你发布的内容在链接中有很好的描述。例如,获取图像的一种方法是热链接到中看到的图像。我已经编辑了这个问题,希望这更明确一点。