Guten morgen zusammen,
wieso kann ich eine Canvas-Objekt in einer View nicht auf MouseWheelListener sonstige Listener reagieren lassen ausser PaintListener?
Wenn ich beispielsweise den Code in meine View kopiere und ausführe, wird der Text angezeigt, reagiert aber nicht auf Mausrad, warum nicht?
Anfangs dachte ich wegen das updaten der Canvas. Bei einigen Seiten habe ich gesehen dass man die Canvas über layout() aktualisieren kann. Aber irgendwie schon bei Debuggen sprint der nicht in den Listener bei Aktivierung des Mausrad.
vielen Dank!
Gruss lam
wieso kann ich eine Canvas-Objekt in einer View nicht auf MouseWheelListener sonstige Listener reagieren lassen ausser PaintListener?
Java:
Canvas canvas = new Canvas(parent, SWT.BORDER);
Listener listener = new Listener() {
int zoomFactor = 50;
public void handleEvent(Event event) {
switch (event.type) {
case SWT.MouseWheel:
zoomFactor = Math.max(0, zoomFactor + event.count);
Canvas canvas = (Canvas) event.widget;
canvas.redraw();
break;
case SWT.Paint:
event.gc.drawText("Zoom = " + zoomFactor, 10, 10);
break;
}
}
};
canvas.addListener(SWT.MouseWheel, listener);
canvas.addListener(SWT.Paint, listener);
Wenn ich beispielsweise den Code in meine View kopiere und ausführe, wird der Text angezeigt, reagiert aber nicht auf Mausrad, warum nicht?
Anfangs dachte ich wegen das updaten der Canvas. Bei einigen Seiten habe ich gesehen dass man die Canvas über layout() aktualisieren kann. Aber irgendwie schon bei Debuggen sprint der nicht in den Listener bei Aktivierung des Mausrad.
vielen Dank!
Gruss lam