重叠图像Java
我试图用一个.png示例覆盖背景图片,但我不知道它是如何工作的。 我尝试创建2个JPanel,但没有找到如何覆盖它们,然后我尝试创建2个JLabel,再次,它们只是保持分离 你知道吗?重叠图像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
谢谢 您可以使用一种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