AWT Translucent JFrame mit repaint

  • Themenstarter Themenstarter _________
  • Beginndatum Beginndatum
?

_________

Gast
Ich habe einen JFrame, in dem ich
Java:
AWTUtilities.setWindowOpaque(this, false);
anwende.

Meine paint-Routine wird von einem anderen Thread via repaint() regelmäßig aufgerufen. Darin steht sinngemäß folgender Code
Java:
int f = 55;
for(int i = 0; i <= f; i++){
	g.setColor(new Color(0, 0, 0, i));
	g.drawLine(0, height() - i, width(), height() - i);
}
g.setColor(new Color(0, 0, 0, f));
g.fillRect(0, 0, width(), height() - f);
und sie erzeugt einfach einen Hintergrund.

Wenn diese Methode aber zum zweiten Mal aufgerufen wird, schreibt sie den neuen Hintergrund über den alten. Das Fenster wird daraufhin weniger transparent, also dunkler, bis es schwarz ist.

Wie kann ich denn den Inhalt komplett löschen? Ich muss ja scheinbar das gesamte Graphics-Objekt "leer" machen. Mit
Code:
clearRect(0, 0, width, height);
dachte ich, ich könnte einfach alles löschen. Geht nicht.

Danke im Voraus!
 
Kannst du nich in deiner paint vor dem Schleifendurchlauf

Java:
g.setcolor(new Color(0,0,0,0))

aufrufen?
 
Zuletzt bearbeitet:
Du solltest auch nicht in einem JFrame sondern ind einem JPanel zeichnen.
Wie dort der Hintergrund zu setzen ist sollte klar sein.

Solltest du deinen Ansatz weiter verfolgen, mach einfach noch einmal die gleiche Schleife, aber wie oben beschrieben mit Color(0,0,0,0) statt Color(0,0,0,i)?
 
Zuletzt bearbeitet:

Zurück
Oben