繁体   English   中英

如何向JPanel添加背景,然后在该JPanel上添加JButton

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM