小编典典

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

java

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


阅读 614

收藏
2020-03-17

共1个答案

小编典典

实现此目的的一种方法是重写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文件。

2020-03-17