如何在Java中设置背景图片?

我正在使用BlueJ作为IDE使用Java开发一个简单的平台游戏。现在,我在游戏中使用多边形和简单形状绘制了玩家/敌人的精灵,平台和其他物品。最终,我希望将它们替换为实际图像。

现在,我想知道将图像(URL或本地来源)设置为游戏窗口/画布的“背景”的最简单解决方案是什么?

如果编程时间不是太长或太复杂,我将不胜感激,因为我的编程技能不是很好,我想使我的程序尽可能简单。请为示例代码提供注释,以详细说明其功能,以及是否在自己的类中,如何在其他类上调用其使用的相关方法。

非常感谢你。

回答:

根据应用程序或小程序是使用AWT还是Swing,答案会略有不同。

(基本上,以J诸如JAppletJFrame为开头的类是Swing和Appletand Frame是AWT。)

无论哪种情况,基本步骤都是:

  1. 将图像绘制或加载到Image对象中。
  2. 在要绘制背景的绘画事件中绘制背景图像Component

可以通过使用Toolkit类或通过ImageIO类来加载图像。

Toolkit.createImage方法可用于Image从中指定的位置加载String

Image img = Toolkit.getDefaultToolkit().createImage("background.jpg");

同样,ImageIO可以使用:

Image img = ImageIO.read(new File("background.jpg");

Component应该获取背景的绘画方法将被覆盖,并将其绘画Image到组件上。

对于AWT,要覆盖的paint方法是方法,并使用传递给该方法drawImageGraphics对象的paint方法:

public void paint(Graphics g)

{

// Draw the previously loaded image to Component.

g.drawImage(img, 0, 0, null);

// Draw sprites, and other things.

// ....

}

对于Swing,要覆盖的paintComponent方法是的方法JComponent,并Image使用在AWT中所做的绘制。

public void paintComponent(Graphics g)

{

    // Draw the previously loaded image to Component.

    g.drawImage(img, 0, 0, null);

    // Draw sprites, and other things.

    // ....

}

这是一个Panel在实例化时加载图像文件并在其自身上绘制图像的:

class BackgroundPanel extends Panel

{

// The Image to store the background image in.

Image img;

public BackgroundPanel()

{

// Loads the background image and stores in img object.

img = Toolkit.getDefaultToolkit().createImage("background.jpg");

}

public void paint(Graphics g)

{

// Draws the img to the BackgroundPanel.

g.drawImage(img, 0, 0, null);

}

}

有关绘画的更多信息:

  • 在AWT和Swing中绘画
  • 课程:从Java教程执行自定义绘画可能会有所帮助。

以上是 如何在Java中设置背景图片? 的全部内容, 来源链接: utcz.com/qa/414490.html

回到顶部