Vaadin TextArea键盘监听器消耗事件

时间:2012-10-07 12:50:08

标签: java vaadin

我需要一个自定义的TextArea组件,我想要禁用一些键(f.e.backspace和del keys)。为此我创建了一个vaadin-archetype-widget工件,我创建了两个子类(MyTextArea和VMyTextArea),并且我在类VMyTextArea中覆盖了onKeyDown方法:

@Override
public void onKeyDown(KeyDownEvent event) {
    int kc = event.getNativeKeyCode();
    if (kc == KeyCodes.KEY_BACKSPACE || kc == KeyCodes.KEY_DELETE) {
        return;
    }
    super.onKeyDown(event);
}

不幸的是,此解决方案无法解决我的问题,退格键和删除键正常工作。我的问题怎么做?

1 个答案:

答案 0 :(得分:1)

解决方案:

public class VMyTextArea extends VTextArea {

    VMyTextArea() {
        super();
        addKeyDownHandler(new KeyDownHandler() {
            public void onKeyDown(KeyDownEvent event) {

                int kc = event.getNativeKeyCode();
                if (kc == KeyCodes.KEY_BACKSPACE || kc == KeyCodes.KEY_DELETE) {
                    event.preventDefault();
                }
            }
        });

    }
}