gpt4 book ai didi

java - 无法在 java 中的背景图像上添加内容

转载 作者:行者123 更新时间:2023-12-02 08:48:00 25 4
gpt4 key购买 nike

我正在创建一个个人资料页面。在左侧,我向 jpanel 添加了一个包含背景图像的 jlabel。现在,在此面板上,我想为图标添加另一个 jlabel。然而,它并没有出现。请帮助我。

P.s:这只是代码的一部分

 public CustomerProfile()
{
super("Customer Profile");
setLayout(new BorderLayout());

//PROFILE DETAILS JPANEL
jpProfile = new JPanel();
add(jpProfile, BorderLayout.WEST);

//BACKGROUND IMAGE OF THE PROFILE JPANEL
ImageIcon background_img = new ImageIcon("background.jpg");
Image img = background_img.getImage();
Image tempImg = img.getScaledInstance(350, 600, Image.SCALE_SMOOTH);
background_img = new ImageIcon(tempImg);
background = new JLabel("",background_img,JLabel.CENTER);
jpProfile.add(background);

//PROFILE ICON
ImageIcon profImg = new ImageIcon("female.png");
jlProfileIcon = new JLabel();
jlProfileIcon.setIcon(profImg);

//ADDING PROFILE ICON TO JPANEL
jpProfileIcon = new JPanel();
jpProfileIcon.add(jlProfileIcon);

//jpProfile.setOpaque(false);
//jpProfileIcon.setOpaque(false);
jpProfileIcon.add(jlProfileIcon);
background.add(jpProfileIcon);




}

最佳答案

默认情况下,只有 JPanel 使用布局管理器。

JLabel 不使用布局管理器,因此添加到标签的任何组件的大小/位置都不会更改。组件的默认大小为 (0, 0),因此无需绘制任何内容。

尝试:

background = new JLabel("",background_img,JLabel.CENTER);
background.setLayout( new BorderLayout() ); // added

background.add(jlProfileIcon);

不需要以下代码:

//jpProfileIcon = new JPanel();
//jpProfileIcon.add(jlProfileIcon);

也就是说,您不需要创建 JPanel,只需向其添加标签即可。

更好的选择是将背景图像绘制到面板上,然后您可以正常将标签添加到面板上。请参阅:Background Panel实现此功能的类。

关于java - 无法在 java 中的背景图像上添加内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60959313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com