重叠图像Java

重叠图像Java,java,image,swing,awt,overlay,Java,Image,Swing,Awt,Overlay,我试图用一个.png示例覆盖背景图片,但我不知道它是如何工作的。 我尝试创建2个JPanel,但没有找到如何覆盖它们,然后我尝试创建2个JLabel,再次,它们只是保持分离 你知道吗? 谢谢 您可以使用一种jPanel.Override paint或paintComponent方法,并使用图形对象绘制图片 public class MyCustomPanel extends JPanel{ private Image img; public MyCustomPanel

我试图用一个.png示例覆盖背景图片,但我不知道它是如何工作的。 我尝试创建2个JPanel,但没有找到如何覆盖它们,然后我尝试创建2个JLabel,再次,它们只是保持分离

你知道吗?
谢谢

您可以使用一种jPanel.Override paint或paintComponent方法,并使用图形对象绘制图片

    public class MyCustomPanel extends JPanel{

    private Image img;

    public MyCustomPanel(// use constructor to get img or load it directly from below){
     //load image
    } 

    public void paintComponent(Graphics g)
        {
            super.paintComponent(g);
            // Draws the img to the BackgroundPanel.
            g.drawImage(img, 0, 0, this);
        }


}
然后,您可以转到主类并使用此JPanel

MyCustomPanel mcp=new MyCustomPanel(//img path);
mcp.add(new JLabel("Hello"),BorderLayout.CENTER);
add(mcp),BorderLayout.CENTER);
//等

我希望你能理解


如果你想让ANWR更快、更复杂/更适合你的情况,下次发布一些代码。

你说的“覆盖”到底是什么意思?请更清楚地解释,并向我们展示您的尝试以及您遇到的问题。
g.drawImage(img,0,0,null)
应该是
g.drawImage(img,0,0,this)。每一个都是一个,所以我们不妨这样使用它。哦,另外,答案打破了绘画的链条。它应该重写
paintComponent
,并立即调用
super
方法.“Swing程序应该重写
paintComponent()
,而不是重写
paintComponent()
”,例如.谢谢你们指出错误!:)修正了。我不确定一开始应该叫哪一个来解释:)。我很高兴我从我的答案中学到了:D