我需要一个自定义的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);
}
不幸的是,此解决方案无法解决我的问题,退格键和删除键正常工作。我的问题怎么做?
答案 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();
}
}
});
}
}