# JProgressBar transparent



## Kangaroo (3. Nov 2009)

Hallo miteinander,

ich möchte eine JTable auf der ich einen transparenten JProgressBar platziere. Wenn ich dann die Daten lade, soll der ProgressBar den Status anzeigen. Das Übereinanderlegen ist kein Problem, das funktioniert super mit einem LayeredPane. Aber ich kann den JProgressBar nicht transparent machen. Weiß von euch jemand eine Möglichkeit, dass doch hinzubekommen??

Gruß, Kangaroo.


----------



## KrokoDiehl (3. Nov 2009)

Willst du die ganze Progressbar durchsichtig haben, also auch den Laufbalken? Das nämlich weiß ich spontan nicht. Für einen transparenten Hintergrund müsstest du 
	
	
	
	





```
setOpague(false)
```
 setzen (für die Progressbar) und die 
	
	
	
	





```
paintComponent()
```
-Methode überschreiben, dass die den Hintergrund selbst malt, mit entsprechendem Alpha-Wert.

Vielleicht hilft dir auch dieser Link, wo es aber um durchsichtige Fenster geht.

Hier hat es noch einen Link in dieses Forum, wo es um etwas ähnliches geht. Das kann dir ggfs auch helfen.


----------



## Kangaroo (3. Nov 2009)

Vielen Dank!!

Der Eintrag der schon im Forum ist, glaube ich, ist genau das was ich suche. Außerdem ist ein Link drin, da fragt jemand nach dem selben Problem wie ich. 
Wohl nach den falschen Keywords gesucht.


----------



## byte (3. Nov 2009)

KrokoDiehl hat gesagt.:


> Willst du die ganze Progressbar durchsichtig haben, also auch den Laufbalken? Das nämlich weiß ich spontan nicht. Für einen transparenten Hintergrund müsstest du
> 
> 
> 
> ...



Statt paintComponent zu überschreiben, kann man doch auch einfach über setBackground() eine Farbe mit Alpha Wert setzen.


----------



## KrokoDiehl (3. Nov 2009)

byte hat gesagt.:
			
		

> Statt paintComponent zu überschreiben, kann man doch auch einfach über setBackground() eine Farbe mit Alpha Wert setzen.



Hm stimmt, scheint ja auch zu gehen   Ich dachte da würde er irgendwas fremdartiges mit anstellen.


----------



## Kangaroo (4. Nov 2009)

Guten Morgen,

das mit setBackground() war meine erste Idee. Aber das hat leider nicht bei mir funktioniert. Egal welche Farbe und ob mit oder ohne Alphawert an dem JProgressBar hat sich nichts geändert.


----------



## Kangaroo (4. Nov 2009)

Hallo nochmal,

habe jetzt wie in den Forumsbeitrag ein JPanel in das GlassPane gesetzt. Da funktioniert das mit Opaque und setBackground(). Vorher habe ich es ja mit einem JLayeredPane verwendet, da ging es nicht. Es wird dann wahrscheinlich am JLayeredPane liegen. Jetzt weiß ich nur nicht, ob ich dass was ich da machen möchte wirklich gut ist mit einem Glasspane. Ich versuche es mal!! Bei Problemen melde ich mich wieder.


----------



## Kangaroo (4. Nov 2009)

Ich bins schon wieder!

Also ich nehme die Aussage von grade eben zurück, es liegt wohl nicht am JLayeredPane sondern daran, wenn ich den JFrame auf das WindowsLookAndFeel umstelle, dann kann ich den ProgressBar nicht mehr transparent machen.


----------



## byte (4. Nov 2009)

Welches JRE benutzt Du denn? In Java 5 gibts teilweise noch Probleme bzgl. Background / Opacity bei manchen JComponents, bsp. kann man bei JToolBars in früheren Versionen keinen Background im XP Style setzen.


----------



## KrokoDiehl (4. Nov 2009)

Also ich habe es mit der Glasspane gemacht und bei 50% Transparenz funktioniert es bei mir mit bisher jedem Look&Feel (arbeite unter Windows mit 1.6.11).
Aber ich habe auch die 
	
	
	
	





```
paintComponent()
```
 überschrieben und nutze keine Progressbar, sondern nur einen Label.


----------



## Kangaroo (4. Nov 2009)

Ich verwende Java5 habe jetzt mal umgestellt auf Java6 als ich deinen Eintrag gelesen habe, aber leider ließ sich der Progressbar immer noch nicht auf non-opaque umstellen.

Aber die Möglichkeit von KrokoDiehl die paintComponent() zu überschreiben funktioniert ja sehr gut. Deshalb denke ich können wir das Problem als gelöst ansehen.

Danke euch allen!


----------

