[英]How to add background to JPanel and then add a JButton on that JPanel
//Calling function
ImagePanel Panel_2 = new ImagePanel(new ImageIcon("C:/Users/kagarwal/Downloads/intacct_logo_standard_web.png").getImage());
Panel_2.add(new JButton());
Panel_2.revalidate();
//Called function
public class ImagePanel extends JPanel {
private Image img;
public ImagePanel(String img) {
this(new ImageIcon(img).getImage());
}
public ImagePanel(Image img) {
this.img = img;
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
}
public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, null);
}
}
要求是:JPanel2需要具有背景图像,最重要的是,我们需要添加JButton。 但是,这里的问题是,新添加的JButton不会出现在给定的JPanel中,它仅显示背景图像。 我错过了刷新吗?
问题出在paintComponent上,在这里您只要求图形对象绘制图像。 但是,您应该通过调用传递图形对象的super.paintComponent()来调用超类paintComponent方法,以便正确显示面板的所有组件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.