Java绘制图标不适用于背景图像
我似乎在JFrame上绘制背景图像时遇到了问题。所有其他图标都正确绘制,但背景图像似乎被跳过。变量backgroundImg是一个ImageIcon(与我的大多数其他图标一样声明),它应该设置为我的JFrame的背景,其他图标将被绘制在它上面。图形功能可能是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;
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让你发布的内容在链接中有很好的描述。例如,获取图像的一种方法是热链接到中看到的图像。我已经编辑了这个问题,希望这更明确一点。