Frage

Ich habe einige Probleme mit setClip in Java.Ich habe eine Klasse, die JPanel erweitert.Innerhalb dieser Klasse habe ich die Methode paintComponent überschrieben.Meine paintComponent-Methode sieht in etwa so aus:

paintComponent {
    //draw some lines here
    Rectangle whole = g2.getClipBounds();//g2 is my Graphics2D object
    Rectangle part = <some rectangle that is a part of the whole paintable area>;
    g2.setClip(part);
    //draw some more stuff here
    g2.setClip(whole);
}

Das Problem, das ich sehe, ist, dass der Bereich im abgeschnittenen Bereich wiederholt bemalt zu sein scheint.Wenn ich ihm zum Beispiel sage, dass er malen soll, malt er einwandfrei.Aber wenn ich dann das Fenster wechsle oder auf andere Weise veranlasse, dass dasselbe wieder angezeigt wird, wird der abgeschnittene Bereich nicht gelöscht, während der Rest gelöscht wird.Dies führt dazu, dass das Gemälde im beschnittenen Bereich kräftiger erscheint als der Rest des übermalbaren Bereichs.

Ich kann mir vorstellen, dass mir etwas in der Funktionsweise von setClip fehlt.

Für Vorschläge wäre ich sehr dankbar.Vielen Dank im Voraus für jede Hilfe.

War es hilfreich?

Lösung

Das Erstellen eines neuen Grafikobjekts aus dem alten hat mir geholfen, wie von Tom empfohlen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top