当前位置: 首页 > 面试题库 >

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

严瀚昂
2023-03-14
问题内容

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

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

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

非常感谢你。


问题答案:

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

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

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

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

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

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

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

同样,ImageIO可以使用:

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

第2步。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教程执行自定义绘画可能会有所帮助。


 类似资料:
  • 问题内容: 有什么方法可以将图像设置为背景JFrame? 问题答案: 没有内置方法,但是有几种方法可以实现。目前我能想到的最直接的方法是: 创建的子类。 重写绘制想要显示的图像的方法。 设置内容窗格的是这个子类。 一些示例代码: 请注意,如果你要使用此代码,则不会处理调整图像大小以适合的大小。

  • 嘿,伙计们,我实际上是java编程的新手。我可以把背景颜色的代码行放在哪里。因为当我在main方法中放一个颜色为黄色的jpanel时。jframe中背景颜色的设置有效,但jtag、jtext field和j按钮现在不见了...一切都只是黄色。 }

  • 我正试图为主页设置一个背景图像。我是从屏幕开始获得图像位置,填充宽度,但不是高度。我的代码中是否遗漏了什么?颤振有图像标准吗?图像缩放是否基于每个手机的屏幕分辨率?

  • 本文向大家介绍如何设置网页背景图片?,包括了如何设置网页背景图片?的使用技巧和注意事项,需要的朋友参考一下 要设置网页的背景图像,请使用CSS样式。在CSS <style>标记下,添加属性background-image。该属性设置诸如jpg,png,svg,gif等的图形。HTML5不支持<body>背景属性,因此CSS用于更改设置的背景图像。 示例 您可以尝试使用以下代码在HTML中设置网页的

  • 我刚开始尝试创建java接口,我想创建一个作为大学项目的一部分。 就像我说的,我是一个新手,所以我知道它可能非常简单,或者我没有把它搞砸,但如果有人能帮助它,它将会非常接近。