2017-04-05 3 views
0

Ich bin dabei, selbst eine analoge Uhr in SWT zu codieren. Ich habe es geschafft, es für einen Punkt zu zeichnen und alles funktioniert ganz gut bis zu dem Punkt, an dem die Kontrolle sich selbst neu zeichnet.
Es scheint, dass die "alten Zeichnungen" durch die Zeichenereignisse beständig sind und ich kann keinen Weg finden, sie zu entfernen. Ideal wäre eine Art Verweis auf die verschiedenen Formen, die ich auf die Canvas zeichne, so dass ich diese einzeln löschen kann, aber ein Ansatz, um die komplette Leinwand zu löschen, so dass ich alles wieder von Grund auf neu zeichnen kann, würde auch geschätzt werden.(Re) Zeichnung auf einem Canvas

Der onyl Ansatz, den ich gefunden habe, ist die aktuelle Canvas und erstellen Sie eine neue auf genau der gleichen Stelle statt zu entsorgen, aber das scheint wie eine riesige Verschwendung von Ressourcen zu mir für etwas, das einfach ...

+0

Können wir Code sehen? –

Antwort

1

Nur Füllen Sie die Canvas mit der Hintergrundfarbe zu Beginn des Paint-Ereignisses.

public void paintControl(PaintEvent event) { 

    GC gc = event.gc; 

    gc.setBackground(... background color ...); 

    Rectangle fillRect = getClientArea(); 

    gc.fillRectangle(fillRect); 

    ... continue drawing 
} 
Verwandte Themen