# Transparenter JPanel



## hrothe (17. Okt 2009)

Hallo Leute,

ist es möglich ein JPanel Transparent zu machen?

Danke


----------



## André Uhres (17. Okt 2009)

Versuch's mal mit [c]panel.setOpaque(false);[/c].


----------



## hrothe (17. Okt 2009)

Danke ^^ Und kann ich das JPanel auch nur Halbtransparent machen?? Das wäre optimal!!


----------



## André Uhres (17. Okt 2009)

hrothe hat gesagt.:


> Danke ^^ Und kann ich das JPanel auch nur Halbtransparent machen?? Das wäre optimal!!



Dann müssen wir die Methode paintComponent(..) überschreiben und den Hintergrund mit einer halbdurchsichtigen Farbe malen. Beispiel:

```
panel = new JPanel() {

    /*
     *  The panel is transparent but we want to paint the background
     *  to give it a semi transparent look.
     */
    @Override
    protected void paintComponent(Graphics g) {
        g.setColor(getBackground());
        g.fillRect(0, 0, getSize().width, getSize().height);
    }
};
panel.setOpaque(false);
// set a semi transparent background Color:
panel.setBackground(new Color(0, 0, 255, 100));
```
Anmerkung:
Mit [c]panel.setOpaque(true)[/c] wäre [c]panel.setBackground(new Color(0, 0, 255, 100))[/c] ungültig, weil wir dann einen Hintergrund mit einem Alpha-Wert festgelegt haben, was eine (halb)durchsichtige Farbe ergibt. In diesem Fall werden wir in der Regel visuelle Verunrenigungen im Hintergrund des Panels sehen. Bei (halb)durchsichtigem Hintergrund müssen wir [c]setOpaque (false)[/c] setzen, so daß der Hintergrund der Mutterkomponente zuerst gemalt wird.


----------

