Java JPanel上的透明背景图像
我已经成功上传了一张图片作为JPanel的背景,但我不知道如何让JPanel的孩子们适应它。例如,当我添加一个按钮或复选框时,它们的表面就会出现。 如何在没有矩形的情况下,将按钮添加到以图像为背景的jpanel中。 这是我的密码:Java JPanel上的透明背景图像,java,swing,background,Java,Swing,Background,我已经成功上传了一张图片作为JPanel的背景,但我不知道如何让JPanel的孩子们适应它。例如,当我添加一个按钮或复选框时,它们的表面就会出现。 如何在没有矩形的情况下,将按钮添加到以图像为背景的jpanel中。 这是我的密码: public class BackgroundPanel extends JPanel{ BufferedImage backgroundImage; public BackgroundPanel() throws Exception
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);
可以毫无问题地添加其他组件将代码发布到目前为止,并给出一个预期结果以澄清;好了,完成了……它们的表面出现了……你是什么意思?截图?我试过了,但它告诉我,我需要10个声誉来发布一张图片。我的意思是,当我在黑色背景上添加复选框时,我可以在黑色背景上看到复选框的白色表面。我感谢您的帮助,但它不起作用。下面是我们所做的:公共类setBackgroundImage{static JPanel pane=new JPanel;static BufferedImage backg;static BasicPanelUI=new BasicPanelUI{@Override public void paintGraphics g,JComponent c{g.drawImagebackg,0,0,null;};JFrame frame=new JFrame;backg=ImageIO.readnew java.io.File/home/imanopholist/Bureau/bg.jpg;pane.setUIUI;pane.addnew jcheckboxsault*********;在设置UI之前加载了图像吗?看起来不像是我的邮件:blacky。white@live.fr,你能把你的发给我吗?我想给你看看我的代码和我做了什么。