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

如何在Java的Swing GUI中将图像设置为框架的背景?

拓拔元徽
2023-03-14
问题内容

我已经使用Java Swing创建了一个GUI。我现在必须将一个sample.jpeg图像设置为放置组件的框架的背景,该怎么做?


问题答案:

实现此目的的一种方法是重写paintComponent每次JPanel刷新时绘制背景图像的方法。

例如,可以将子类化JPanel,并添加一个字段以保存背景图片,然后覆盖该paintComponent方法:

public class JPanelWithBackground extends JPanel {

  private Image backgroundImage;

  // Some code to initialize the background image.
  // Here, we use the constructor to load the image. This
  // can vary depending on the use case of the panel.
  public JPanelWithBackground(String fileName) throws IOException {
    backgroundImage = ImageIO.read(new File(fileName));
  }

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

    // Draw the background image.
    g.drawImage(backgroundImage, 0, 0, this);
  }
}

(以上代码尚未经过测试。)

以下代码可用于将添加JPanelWithBackground到中JFrame

JFrame f = new JFrame();
f.getContentPane().add(new JPanelWithBackground("sample.jpeg"));

在此示例中,该ImageIO.read(File)方法用于读取外部JPEG文件。



 类似资料:
  • 我试图设置一个屏幕的背景图像,占屏幕的25%左右,位于顶部。我试过了,

  • 我有一个像素。我如何使用它来获得与具有相同的效果?

  • 我试图将图像作为JavaFX场景中的背景,但我的代码不起作用。 我试图在java eclipse中制作一个战舰游戏程序,但我遇到了一个图形问题。 当我第一次尝试运行它时,它工作了,一个新的窗口打开了,中间有一个按钮,但bakcground是空白的。当我尝试在窗口中设置一个图像作为背景时,按下“开始”按钮,什么也没有发生…

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

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

  • 问题内容: 谁能建议我如何将.TIF格式的图像存储到该图像并将其添加到列表模型?我试过了,但是给了我。 在这里,我编辑了代码,这是我的错误msg 异常,位于ListImage1.main(ListImage1.java:48)的javax.swing.ImageIcon。(ImageIcon.java:228)的线程“ main”中java.lang.NullPointerException 问题