暂时禁用按键事件

时间:2013-03-07 15:59:35

标签: java gwt smartgwt

在GWT中,是否有可能暂时暂停某个按键,直到需要再次按下该键?像全球停赛一样。我有一个问题,当我在SmartGWT中的RelativeDateItem上打开日期选择器时,它会导致整个页面滚出视图,直到用户再次点击向上箭头。

3 个答案:

答案 0 :(得分:0)

datepicker.addKeyPressHandler(new com.smartgwt.client.widgets.events.KeyPressHandler() {
public void onKeyPress(
    com.smartgwt.client.widgets.events.KeyPressEvent event) {
        event.preventDefault();
    }
});

答案 1 :(得分:0)

我相信你可以用它阻止它。

         Event.addNativePreviewHandler(new NativePreviewHandler(){
                @Override
                public void onPreviewNativeEvent(NativePreviewEvent event) {
               EventTarget eventTarget = event.getNativeEvent().getEventTarget();
            Element el = Element.as(eventTarget);
                       switch (event.getTypeInt()){
                       case Event.ONKEYPRESS:
                       case Event.ONKEYUP:
                       case Event.ONKEYDOWN:
                         if (el.getNodeName().equalsIgnoreCase("NODE FROM DATEPICKER")) {
                             if (event.getNativeEvent().getKeyCode() == "yourKeyCodeToBlock"
                                    event.cancel();
                             }
                         }
                         break;
                       }                   
                }
         });

答案 2 :(得分:0)

这对我来说是一个JEditorPane:

CLIPS> (set-fact-duplication TRUE)

javadoc显示:

  

void java.awt.event.InputEvent.consume()

     

<强>消耗

     

public void consume()

     

使用此事件,以便发起它的源不会以默认方式处理它。

JEditorPane位于实现KeyListener的JFrame中,JEditorPane执行:

    @Override
    public void keyTyped(KeyEvent evt) {
    if (inTag() > -1) {
        evt.consume();
    }