Sascha's Wiki

Hintergrundbild für ein JPanel erstellen

Um ein JPanel mit einem Hintergrund zu erstellen ist es zuerst notwendig eine neue Klasse zu schreiben, die von JPanel ableitet. Vorteil eines Panels mit einem Hintergrund ist, dass man neue Elemente über diesem Hintergrund einfügen kann. Ein Beispiel für ein PicturePanel sieht so aus:

import java.awt.Graphics;
import java.awt.Image;
import java.awt.LayoutManager;
import javax.swing.JPanel;

public class PicturePanel extends JPanel{
    private Image image;
    
    public PicturePanel() {
        super();
    }
    
    public PicturePanel(boolean isDoubleBuffered) {
        super(isDoubleBuffered);
    }
    
    public PicturePanel(LayoutManager layout) {
        super(layout);
    }
    
    public PicturePanel(LayoutManager layout, boolean isDoubleBuffered) {
        super(layout, isDoubleBuffered);
    }
    
    public void setBackgroundImage(Image image) {
        this.image = image;
        repaint();
    }
    
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        if(image != null) {
            g.drawImage(image, 0, 0, this);
        }
    }
}
Um so ein Panel zu Benutzen ist folgender Code notwendig

//Erzeugen des Bildes
private Image img = Toolkit.getDefaultToolkit().getImage(getClass()
.getResource("/path/to/image/image.jpg"));

//PicturePanel generieren, Hintergrundbild festlegen und in ein anderes Panel eindocken
PicturePanel picturePanel = new PicturePanel(new BorderLayout());
picturePanel.setBackgroundImage(img);
jPanel2.add(picturePanel);

java/allgemein/setbackgroundimage-of-jpanel.txt · Zuletzt geändert: 2016/04/21 09:15 (Externe Bearbeitung)