2012-10-07 58 views
0

我需要一個自定義的TextArea組件,其中我想禁用某些鍵(f.e.退格鍵和del鍵)。爲此,我創建了一個vaadin-原型的微件神器,我創建了兩個子類(MyTextArea和VMyTextArea),和我推翻類VMyTextArea的方法的onkeydown:Vaadin TextArea鍵盤偵聽器消耗事件

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

不幸的解決方案沒有解決我的問題,退格鍵和刪除鍵正常工作。我的問題如何做到這一點?

回答

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(); 
       } 
      } 
     }); 

    } 
}