[英]Transparent Background image on a JPanel
我已经成功上传了图像作为JPanel的背景,但是我不知道如何使JPanel子代适合它。 例如,当我添加按钮或复选框时,它们的表面就会出现。 如何在不具有矩形的情况下向jpanel(以图像作为背景)添加按钮。 这是我的代码:
public class BackgroundPanel extends JPanel{
BufferedImage backgroundImage;
public BackgroundPanel() throws Exception
{
// load background image
backgroundImage=javax.imageio.ImageIO.read(new java.io.File("/home/imanopholist/Bureau/bg17.jpg"));
// set the panel size to the dimension of the background image
int panelWidth=backgroundImage.getWidth(null);
int panelHeight=backgroundImage.getHeight(null);
setPreferredSize(new java.awt.Dimension(panelWidth,panelHeight));
}
public void paintComponent(java.awt.Graphics gr)
{
gr.drawImage(backgroundImage,0,0,null);
}
}
// My panel :
try {
bgpanel=new BackgroundPanel();
bgpanel.setLayout(null);
bgpanel.setPreferredSize(new Dimension(785, 595));
pan1.add(bgpanel);
bgpanel.setVisible(true);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// My Label
JLabel lblNbrServices = new JLabel("Number of Services");
lblNbrServices.setFont(new Font("Tahoma", Font.BOLD, 12));
lblNbrServices.setBounds(500, 110, 145, 29);
bgpanel.add(lblNbrServices);
[界面]
可以使用BasicPanelUI
完成。 像这样创建一个
BasicPanelUI UI = new BasicPanelUI() {
@Override
public void paint(Graphics g, JComponent c) {
g.drawImage(backgroundImage,0,0,null);
}
};
然后像这样附加到您的JPanel
this.setUI(UI);
可以毫无问题地添加其他组件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.