tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
280
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    CKingZesi CKingZesi ist offline Mitglied Silber
    Registriert seit
    Oct 2008
    Beiträge
    62
    Hallo Zusammen,

    Ich habe folgendes Problem: Bei meinem Java GUI (SWT) können auf dem Mac OS X 10.5 keine KeyEvents generiert werden wenn die Maustaste gedrückt wird. Dies gilt aber nur für die Zeichentasten (a, b, c, usw.), die Funktionstasten (Ctrl, Shift, usw.) werden davon nicht tangiert.

    Auf dem Windows (XP und Vista) funktioniert das tiptop.

    Weiss jemand woran das liegen könnte?

    Freundliche Grüsse
    CKingZesi
     
    Eine Frage braucht keinen Anlass, die Frage ist der Anlass selbst...

  2. #2
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Fängst du MouseEvents auch ab oder nur KeyEvents?

    Und wie sieht dein Code aus? Hast du mal in der Bug-Database von SWT geschaut ob dies in bekanntes Problem ist?
     

  3. #3
    CKingZesi CKingZesi ist offline Mitglied Silber
    Registriert seit
    Oct 2008
    Beiträge
    62
    Hallo,

    Also zuerst hatte ich beides abgefangen. Um den Fehler eingrenzen zu können habe ich danach die Verarbeitung der MouseEvents entfernt. Zurzeit werden also nur KeyEvents abgefangen.

    In der Bug-DB habe ich noch nicht nachgesehen, werde ich aber noch nachholen.

    Hier noch ein wenig Code(Beispiel) dazu:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    
    import org.eclipse.swt.events.KeyEvent;
    import org.eclipse.swt.events.KeyListener;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
     
    public class InteractionTest
    {
        public InteractionTest(Shell shell)
        {
            shell.addKeyListener(new KeyListener()
            {
                public void keyPressed(KeyEvent e)
                {
                    if(e.keyCode == 114)
                      System.out.println("r down");
                }
     
                public void keyReleased(KeyEvent e)
                {
                    if(e.keyCode == 114)
                      System.out.println("r up");
                }
            });
        }
     
        public static void main(String[] args)
        {
            Display display = new Display();
            Shell shell = new Shell(display);
     
            new InteractionTest(shell);
     
            shell.open();
     
            while(!shell.isDisposed())
              if(!display.readAndDispatch());
                display.sleep();
            display.dispose();
        }
    }

    Schon dieser Code genügt um den Fehler hervorzurufen. Wenn die Maustaste gedrückt und gehalten wird, werden die beiden KeyEvents der r-Taste (KeyCode 114) nicht generiert, resp. nicht abgefangen.

    Freundliche Grüsse
    CKingZesi
     
    Eine Frage braucht keinen Anlass, die Frage ist der Anlass selbst...

  4. #4
    CKingZesi CKingZesi ist offline Mitglied Silber
    Registriert seit
    Oct 2008
    Beiträge
    62
    Hallo nochmal,

    Also die Sache hat sich erledigt. Der Fehler wurde in der Bug-DB bereits eingeschrieben und ist bekannt. Er wird aber voraussichtlich nicht behoben werden, da man eigentlich nicht von einem Fehler sprechen kann.

    Hier noch der Link:
    https://bugs.eclipse.org/bugs/show_bug.cgi?id=207298

    Freundliche Grüsse
    CKingZesi
     
    Eine Frage braucht keinen Anlass, die Frage ist der Anlass selbst...

  5. #5
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Okay. Hätte auch nen Focus Problem sein können oder so. Dann hätte vielleicht sowas geholfen:

    Code java:
    1
    2
    3
    4
    5
    6
    
    display.addFilter(SWT.KeyDown, new Listener( ) {
     
                            public void handleEvent(Event event) {
                                   
                            }
                    });
     

  6. #6
    CKingZesi CKingZesi ist offline Mitglied Silber
    Registriert seit
    Oct 2008
    Beiträge
    62
    Hallo,

    Ja wäre möglich gewesen, obwohl dann hätte es ohne gedrückte Maustaste auch nicht funktioniert. Wenn die Maustaste aber nicht gehalten wurde hat es ganz normal funktioniert.

    Danke für den Tipp und auch für den Hinweis mit der Bug-DB. Werde das nächste Mal zuerst dort schauen.

    Freundliche Grüsse
    CKingZesi
     
    Eine Frage braucht keinen Anlass, die Frage ist der Anlass selbst...

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 04.05.10, 16:04
  2. Antworten: 4
    Letzter Beitrag: 10.07.09, 13:44
  3. Scrollen bei gedrückter Rechter Maustaste
    Von Radhad im Forum .NET Windows Forms
    Antworten: 10
    Letzter Beitrag: 13.03.07, 10:36
  4. Mauszeiger mit gedrückter Maustaste bewegen - simulieren
    Von ::emanuel:: im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 21.02.07, 10:02
  5. KeyEvents keine Wirkung!
    Von Bullitt im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 5
    Letzter Beitrag: 10.05.04, 11:19