Hi.
Ich will kurz beschreiben, was ich erreichen will, bevor ich darauf eingehen werde, was das Problem ist:
Ich zeichne eine nicht vordefinierte Anzahl an ausgefüllten Kreisen, diese kann ich per Mausklick auswählen und und im Drag-Mode verschieben. Die Bewegungen realisiere ich dadurch, dass alle Kreise bei einer Veränderung der Koordinaten eines Kreises neu gezeichnet (erst in Hintergrundfarbe übermalen und dann in Vordergrundfarbe zeichnen) werden. Dies Löst das Problem, das entstünde, wenn der gewählte Kreis über existierende, sich nicht bewegende Kreise gezogen wird.
Das alles funktioniert bestens!
ABER ...
wenn ich nun in der paint-Methode die Graphics-Variable in eine Graphics2D-Variable konvertiere und das Antialisaing aktiviere
dann erkenne ich folgende Phänomene.
- Beim ersten Zeichnen werden alle Kreise mit feinen Konturen gezeichnet
- Wähle ich einen Kreis aus und bewege ihn, wird dieser auch weiterhin mit feinen Konturen gezeichnet, jedoch alle anderen Kreise verlieren die feinen Konturen und werden im Graphics-Stil gezeichen.
- Bewege ich den gewählten Kreis über einen anderen, so wird auch der andere kurzzeitig mit feinen Konturen gezeichnet.
D.h. also: obwohl alle Kreise immer neu gezeichnet werden, werden nur diese mit Antialiasing gezeichnet, die Position oder Aussehen ändern. Alle anderen werden zwar neu gezeichnet aber ohne Antialiasing.
Wieso ist das so und wie kann ich das ändern?
Vielen Dank.[/list]
Ich will kurz beschreiben, was ich erreichen will, bevor ich darauf eingehen werde, was das Problem ist:
Ich zeichne eine nicht vordefinierte Anzahl an ausgefüllten Kreisen, diese kann ich per Mausklick auswählen und und im Drag-Mode verschieben. Die Bewegungen realisiere ich dadurch, dass alle Kreise bei einer Veränderung der Koordinaten eines Kreises neu gezeichnet (erst in Hintergrundfarbe übermalen und dann in Vordergrundfarbe zeichnen) werden. Dies Löst das Problem, das entstünde, wenn der gewählte Kreis über existierende, sich nicht bewegende Kreise gezogen wird.
Das alles funktioniert bestens!
ABER ...
wenn ich nun in der paint-Methode die Graphics-Variable in eine Graphics2D-Variable konvertiere und das Antialisaing aktiviere
Code:
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON );
- Beim ersten Zeichnen werden alle Kreise mit feinen Konturen gezeichnet
- Wähle ich einen Kreis aus und bewege ihn, wird dieser auch weiterhin mit feinen Konturen gezeichnet, jedoch alle anderen Kreise verlieren die feinen Konturen und werden im Graphics-Stil gezeichen.
- Bewege ich den gewählten Kreis über einen anderen, so wird auch der andere kurzzeitig mit feinen Konturen gezeichnet.
D.h. also: obwohl alle Kreise immer neu gezeichnet werden, werden nur diese mit Antialiasing gezeichnet, die Position oder Aussehen ändern. Alle anderen werden zwar neu gezeichnet aber ohne Antialiasing.
Wieso ist das so und wie kann ich das ändern?
Vielen Dank.[/list]