Hallo,
ich habe das Problem, dass ich den Inhalt einer Canvas nicht löschen kann. Ich füge der Canvas einen PaintListener hinzu:
das zeichnen rufe ich mit folgender Methode auf (übergebe die Position des Rechtecks)
wenn ich diese Methode mit jeweils anderen Parametern aufrufe, habe ich das Problem, dass das ALTE Rechteck immer noch sichtbar ist, obwohl ich es gelöscht haben möchte und nur das neue Rechteck sehen will.
was mache ich falsch?
das zu noch folgendes: Ich benutze die Canvas innerhalb eines Composites, welche auch noch ein Browserobjekt beinhaltet. Beide sind in einem StackLayout organisiert. Wenn ich jetzt die Reihenfolge kurz hinundherschalte, dh.den Browser in den Vordergrund hole und gleich wieder in den Hintergrund (mit StackLayout.topControl), dann seh ich nur das zuletzt gezeichnete Rechteck.
in einem anderen Forum habe ich folgendes gelesen:
If you are using SWT.NO_BACKGROUND you will have to draw every pixel (i.e.
you will have to fill in the background too).
Wie ist das zu versehen, mit dem Background, ich werde daraus nicht schlau :-(
Danke im Voraus, Michael
ich habe das Problem, dass ich den Inhalt einer Canvas nicht löschen kann. Ich füge der Canvas einen PaintListener hinzu:
Code:
canvas.addPaintListener(new PaintListener()
{
public void paintControl(PaintEvent e)
{
if(xpos==0 && ypos==0)
return;
GC gc = e.gc;
gc.drawRectangle(xpos, ypos, 300, 300);
}
});
das zeichnen rufe ich mit folgender Methode auf (übergebe die Position des Rechtecks)
Code:
public void drawSomething(int in_xpos, int in_ypos)
{
xpos = in_xpos;
ypos = in_ypos;
canvas.redraw();
}
wenn ich diese Methode mit jeweils anderen Parametern aufrufe, habe ich das Problem, dass das ALTE Rechteck immer noch sichtbar ist, obwohl ich es gelöscht haben möchte und nur das neue Rechteck sehen will.
was mache ich falsch?
das zu noch folgendes: Ich benutze die Canvas innerhalb eines Composites, welche auch noch ein Browserobjekt beinhaltet. Beide sind in einem StackLayout organisiert. Wenn ich jetzt die Reihenfolge kurz hinundherschalte, dh.den Browser in den Vordergrund hole und gleich wieder in den Hintergrund (mit StackLayout.topControl), dann seh ich nur das zuletzt gezeichnete Rechteck.
in einem anderen Forum habe ich folgendes gelesen:
If you are using SWT.NO_BACKGROUND you will have to draw every pixel (i.e.
you will have to fill in the background too).
Wie ist das zu versehen, mit dem Background, ich werde daraus nicht schlau :-(
Danke im Voraus, Michael