SWT: Welcher Button bei MouseMove?

Dead_Poet

Mitglied
Hallo zusammen!

Habe eine Problem mit MouseEvents beim SWT:

Ich habe einem Canvas folgenden Listener hinzugefügt:

Java:
Listener l = new Listener( ) {
    public void handleEvent (Event e) {
                String string = "";
                switch (e.type) {
                    case SWT.MouseDown: string = "DOWN"; break;
                    case SWT.MouseMove: string = "MOVE"; break;
                    case SWT.MouseUp: string = "UP"; break;
                }
                string +=", Button: " + e.button;

                System.out.println (string);
            }
        };
        canvas.addListener(SWT.MouseDown, l);
        canvas.addListener(SWT.MouseMove, l);
        canvas.addListener(SWT.MouseUp, l);

Das Problem ist jetzt, dass, wenn ich die Maus über dem Canvas bewege und dabei irgendeinen MouseButton drücke, e.button während der Bewegung immer "0" liefert und nicht den Wert des gedrückten MouseButtons.
Hat jemand eine Idee, wie ich an den gedrückten Button während einer Mausbewegung herankomme?

Im Prinzip bräuchte ich also sowas wie die mouseDragged-Methode des MouseMotionListeners aus dem AWT.

Das Ganze ist für die Navigation in einem 3D-Viewer (Maus bewegen + Button 1 = Objekt drehen, Maus bewegen + Button 2 = Zoom etc.).

Vielen Dank schonmal für Eure Hilfe.
 
Zurück