Unable to add contents over my background image in java

0x1234 :

I am creating a profile page. At the left, I have added a jlabel containing a background image to my jpanel. Now over this panel, I want to add another jlabel for the icon. However, it is not showing up. Please help me.

P.s: This is only part of the code

 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);




  }
camickr :

By default only a JPanel uses a layout manager.

The JLabel does not use a layout manager so the size/location of any component added to the label is not changed. The default size of a component is (0, 0) so there is nothing to paint.

Try:

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

The following code is not needed:

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

That is you don't need to create a JPanel, just to add the label to it.

A better option is to paint the background image onto a panel and then you can just add your label normally to the panel. See: Background Panel for a class that implements this functionality.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=385163&siteId=1