Registrieren KeyDownHandler auf GWT VerticalPanel
Habe ich ein gwt VerticalPanel-Klasse, die ich brauche, um Händel KeyDown-Ereignisse.
die Methode, die ich verwendet, um zu implementieren Tastatur-handler in meiner Klasse ist:
ich füge hinzu :
this.sinkEvents(Event.ONKEYDOWN);
dem Konstruktor
dann habe ich Methode überschreiben onBrowserEvent() zur Verarbeitung von Schlüssel-down-Ereignis.
@Override
public void onBrowserEvent(Event event) {
//TODO Auto-generated method stub
super.onBrowserEvent(event);
int type = DOM.eventGetType(event);
switch (type) {
case Event.ONKEYDOWN:
//call method to handle this keydown event
onKeyDownEvent(event);
break;
default:
return;
}
}
aber diese Methode funktioniert nicht für das VerticalPanel-Klasse.kein KeyDown-Ereignis wird ausgelöst, wenn ich eine Taste drücken!
gibt es spezielle gwt-widgets, die Unterstützung KeyDownHandler like-Button etc..VerticalPanel ist nicht einer von Ihnen..wir brauchen also eine Arbeit um, registrieren Sie einen KeyDownHandler auf eine Klasse, die sich VerticalPanel.
können Sie vorschlagen, eine Idee oder Tip???
Dank
InformationsquelleAutor othman | 2010-12-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie eine
Composite
dass wrappes eineFocusPanel
und einVerticalPanel
. Auf diese Weise können Sie fangen alle wichtigen Veranstaltungen derFocusPanel
ausgerichtet ist. Einfach delegieren die benötigten Methoden, um die Platten:UPDATE
Ihre Frage auf, wie um zu verhindern, dass der browser scrollen, wenn die Pfeiltasten gedrückt werden. Hier ein kleines Beispiel, das funktioniert für mich:
Hinzufügen der Handler, die Sie benötigen, und rufen Sie
preventDefault()
auf die Ereignisse, die der browser muss nicht aufpassen.Du bist herzlich willkommen.
Hallo, ich habe noch eine Frage: Wenn ich mich registrieren keyDownHandler für meine ExtendedVerticalPanel und verwenden Sie die Up/Down-Tasten scrollt das Browserfenster scroller beim Schießen-Taste up - /down-Ereignissen für mein Panel. dieses Verhalten ist nicht akzeptabel. Ich habe versucht ein Update durch aufrufen von event.stopPropagation() am Anfang von KeyDownHandler.onKeyDown(KeyDownEvent event) - Methode. das problem ist, Stoppt der ereignisübertragung deaktiviert alle key-events für die widgets in meine Systemsteuerung wie TextBox ect..Wie kann ich verhindern, dass browser-Fenster scroller scrollen, während Sie mit der Taste up/down auf meinem Panel? vielen Dank.
Haben Sie versucht, Sie anzurufen
preventDefault()
?ja, ich habe preventDefault() und es auch deaktiviert die key-events auf dem Panel. das Textfeld hat die Schlüssel deaktiviert ist innerhalb einer FocusPanel . könnte dies das problem sein? preventDefault() scheint zu kündigen wichtige Ereignisse, die für alle widgets in der Seitenleiste. irgendeine Idee was schief läuft? vielen Dank
InformationsquelleAutor z00bs