Keine KeyEvents bei gedrückter Maustaste

CKingZesi

Mitglied
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
 
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?
 
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:
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
 
Okay. Hätte auch nen Focus Problem sein können oder so. Dann hätte vielleicht sowas geholfen:

Java:
display.addFilter(SWT.KeyDown, new Listener( ) {

                        public void handleEvent(Event event) {
                               
                        }
                });
 
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
 

Neue Beiträge

Zurück