我想取消以下處理程序的事件。下面的示例類顯示了我嘗試的內容。儘管文本框中的keyevent被取消,但仍然調用第二個處理程序。處理程序的順序是正確的。我可以證明Handler1在Handler2之前被調用。在這個樣本類中,我可以使用一個標誌,但在我的真實類中,處理程序和文本框是分離的,因此標誌將會成爲問題。有任何想法嗎?取消以下處理程序的GWT事件
public class EventTestTextBox extends TextBox {
public static class Handler1 implements KeyUpHandler {
@Override
public void onKeyUp(KeyUpEvent event) {
if (event.isShiftKeyDown()) {
event.preventDefault();
event.stopPropagation();
((TextBox)event.getSource()).cancelKey();
}
}
}
public static class Handler2 implements KeyUpHandler {
@Override
public void onKeyUp(KeyUpEvent event) {
Window.alert("should not appear if shift-key is down.");
}
}
public EventTestTextBox() {
super.addKeyUpHandler(new Handler1());
super.addKeyUpHandler(new Handler2());
}
}
感謝您的回答。但在這種情況下,我想要阻止以下處理程序。所以我猜這是不可能的? – oleh 2011-06-21 19:51:27