21xrx.com
2025-07-15 01:18:01 Tuesday
文章检索 我的文章 写文章
如何给Java窗体添加背景图片后其它组件也能显示
2023-06-15 11:56:32 深夜i     24     0
Java 窗体背景图片 组件可见性

在Java中,我们经常需要给窗体添加背景图片来增强显示效果。但是,在添加背景图片后,我们会发现窗体上的其它组件都变得不可见了,这该怎么办呢?其实,只需要一点点的代码改动就可以解决这个问题。

首先,我们需要先加载图片文件,可以使用以下代码:

ImageIcon background = new ImageIcon("background.jpg");

然后,我们需要将窗体设置为透明状态,并在窗体的`paint()`方法中绘制背景图片。具体代码如下:

public class MainFrame extends JFrame {
  private ImageIcon background;
  public MainFrame() {
    // 加载背景图片
    background = new ImageIcon("background.jpg");
    // 设置窗体大小为背景图片大小
    setSize(background.getIconWidth(), background.getIconHeight());
    // 设置窗体为透明状态
    setUndecorated(true);
    setBackground(new Color(0, 0, 0, 0));
    // 设置窗体居中显示
    setLocationRelativeTo(null);
    // 显示窗体
    setVisible(true);
  }
  public void paint(Graphics g) {
    // 绘制背景图片
    g.drawImage(background.getImage(), 0, 0, null);
    // 调用父类的方法
    super.paint(g);
  }
}

在上面的代码中,`setUndecorated(true)`,表示设置窗体为无边框状态,并且`setBackground(new Color(0, 0, 0, 0))`表示将窗体的背景颜色设置为透明。在`paint()`方法中,我们先绘制背景图片,再调用父类的`paint()`方法来绘制其它组件。

使用以上代码,我们就可以轻松地实现窗体显示背景图片并让其它组件可见了。

  
  

评论区