如何直接将图片作为背景添加到 JPanel

问题描述 投票:0回答:1

有没有办法在不使用新的 JPanel 的情况下添加背景?

我正在使用 Swing 用 Java 制作一个地牢主题的扫雷游戏,需要有一个不同的图像作为背景。我的游戏由一个主 JFrame 和标题屏幕以及 JPanel 的三个难度组成。

添加一个新面板来添加背景图片真的很困难,因为它会弄乱我的很多代码。我基本上只是想将背景“粘”到 JPanel 的背面,同时将其放在后面层,而不覆盖任何按钮。

java swing jpanel
1个回答
0
投票

我就是这么做的。覆盖paintComponent

import java.awt.Graphics;
import javax.swing.JPanel;
import vokabeltrainer.common.ApplicationImages;

public class TrashCanBackgroundPanel extends JPanel
{
   private static final long serialVersionUID = -7918923007938243168L;

   @Override
   public void paintComponent(Graphics g)
   {
      super.paintComponent(g);
      if (ApplicationImages.getTrashcanBackground() != null)
      {
         int x = this.getParent().getWidth() / 2 - 1000 / 2;
         int y = this.getParent().getHeight() / 2 - 620 / 2;
         g.drawImage(ApplicationImages.getTrashcanBackground(), x, y, this);
      }
   }
}

图像的宽度为1000像素,高度为620像素。

© www.soinside.com 2019 - 2024. All rights reserved.