Java油漆图标不适用于背景图像

时间:2014-12-05 10:54:06

标签: java swing paintcomponent imageicon

我似乎遇到了在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());


}

为了进一步解释这个问题:背景图像应该是一个星形场,它应该在主游戏面板上绘制。但是,结果是每次都是黑色背景(在背景颜色中设置)。图像大小与帧大小相同。游戏开始后所有其他图像都被正确绘制,唯一的问题是背景图片。删除大部分描绘其他图像的代码后,仍然无法加载背景图像。

1 个答案:

答案 0 :(得分:1)

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

一般来说,我有点不喜欢paintIcon方法,并且会存储Image并执行:

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