将图像设置为JPanel背景的最简单方法

2022-09-01 18:25:16

如何在不创建新的类或方法的情况下将反向图像添加到我的JPanel中,而只需将其与JPanel的其余属性一起插入即可?

我试图使用图像设置JPanel的背景,但是,我找到的每个示例似乎都建议使用自己的类扩展面板。

我一直在寻找一种方法来简单地添加图像,而无需创建一个全新的类,并且使用相同的方法(试图保持事情井井有条和简单)。

下面是设置我的 JPanel 的方法的示例:

public static JPanel drawGamePanel(){
    //Create game panel and attributes
    JPanel gamePanel = new JPanel();
    Image background = Toolkit.getDefaultToolkit().createImage("Background.png");
    gamePanel.drawImage(background, 0, 0, null);
    //Set Return
    return gamePanel;
}

答案 1

我正在尝试使用图像设置JPanel的背景,但是,我找到的每个示例似乎都建议使用自己的类扩展面板

是的,您必须扩展并覆盖该功能才能执行此操作。JPanelpaintcomponent(Graphics g)

@Override
  protected void paintComponent(Graphics g) {

    super.paintComponent(g);
        g.drawImage(bgImage, 0, 0, null);
}

我一直在寻找一种方法来简单地添加图像,而无需创建一个全新的类,并且使用相同的方法(试图保持事情井井有条和简单)。

您可以使用其他组件,这些组件允许直接添加图像作为图标,例如 如果需要帮助,。JLabel

ImageIcon icon = new ImageIcon(imgURL); 
JLabel thumb = new JLabel();
thumb.setIcon(icon);

但再次在括号中试图保持事情井井有条和简单!是什么让你认为仅仅创建一个新的职业就会把你带到一个混乱的世界?


答案 2

将图像设置为JPanel背景的最简单方法

不要使用JPanel。只需使用带有图标的JLabel,那么您就不需要自定义代码。

请参阅背景面板以获取更多信息以及将图像绘制到JPanel上具有3种不同绘画选项的解决方案:

  1. 规模
  2. 平铺
  3. 实际

推荐