0

一部のキー (fe バックスペース キーと del キー) を無効にしたい、カスタマイズされた TextArea コンポーネントが必要です。このために、vaadin-archetype-widget アーティファクトを作成し、2 つのサブクラス (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);
}

残念ながら、この解決策は私の問題を解決しません。バックスペースと削除キーは正常に機能します。私の質問はこれを行う方法ですか?

4

1 に答える 1

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

    }
}
于 2012-10-21T20:48:58.017 に答える