Christopher: JPanel - BackgroundImage

Hallo,

wie kann ich ein JPanel mit einem Background-Image versehen?
Sobald ich Komponenten hinzufuege, wird das Bild nicht mehr
angezeigt.
Als Layout nutze ich das JGoodies Formlayout.

Besten Dank
Christopher

  
private JPanel GetContent()  
 {  
  JTextField tfUser = new JTextField();  
  JTextField tfPwd = new JTextField();  
  JLabel lblUser = new JLabel("Username");  
  JLabel lblPwd = new JLabel("Password");  
  
  FormLayout layout = new FormLayout(  
  "pref, 4dlu, 50dlu, 4dlu, min", // columns  
  "pref, 2dlu, pref, 2dlu, pref"); // rows  
  
  layout.setRowGroups(new int[][]{{1, 3, 5}});  
  JPanel panel = new JPanel(layout){  
   protected void paintComponent(Graphics g)  
   {  
    //  Dispaly image at at full size  
    g.drawImage(icon.getImage(), 0, 0, null);  
    super.paintComponent(g);  
   }  
  };;  
  CellConstraints cc = new CellConstraints();  
  panel.add(lblUser, cc.xy (1, 1));  
//  panel.add(tfUser, cc.xyw(3, 1, 3));  
//  panel.add(lblPwd, cc.xy (1, 3));  
//  panel.add(tfPwd, cc.xy (3, 3));  
  panel.setOpaque( false );  
  return panel;  
 }  

  1. Hallo,

    ...

    JPanel panel = new JPanel(layout){
       protected void paintComponent(Graphics g)
       {
        //  Dispaly image at at full size
        g.drawImage(icon.getImage(), 0, 0, null);
        super.paintComponent(g);
       }
      };

    ...

    Hast Du das mal andersrum probiert, also erst die paintComponent-Methode der Superklasse (JPanel) aufrufen und dann das Bild in den graphics-context zeichnen?

    viele Grüße

    Axel

    1. Hallo Axel,

      Hast Du das mal andersrum probiert, also erst die paintComponent-Methode der Superklasse (JPanel) aufrufen und dann das Bild in den graphics-context zeichnen?

      ooOO0 Jaa!

      Super. Besten Dank ;-)

      Christopher