2017-07-08 11 views
1

テキストボックスでバックスペースを押すと、このコードがトリガされます。Javaのバックスペースキーを無視する方法はありますか?

private void txtAgeKeyTyped(java.awt.event.KeyEvent evt) {         
     char agetext= evt.getKeyChar(); 
     if(!(Character.isDigit(agetext))){ 
      evt.consume(); 
      JOptionPane.showMessageDialog(null,"Age is only written in Numbers!"); 
     } 
} 

数値の代わりにアルファベットのみを入力した場合にのみ、トリガーする必要があります。

何らかの理由で、バックスペースキーを押すたびにトリガされます。

このコードブロックをトリガーせずにバックスペースを使用する方法はありますか?ごめんなさい

は、これは私がキーイベント

+0

どのような方法ですか?なぜそれがトリガーですか?あなたの質問にいくつかの詳細を加えてください! –

+0

https://stackoverflow.com/questions/15693904/java-keylistener-keytyped-backspace-esc-as-input –

+0

私は、テキストボックスにメッセージバックスペースを使用して文字を削除したい場合は、「年齢は数字のみで書かれているの!」表示される 私はNetbeansでKeyTypedを使用しました – user3647634

答えて

4

バックスペース文字がちょうど\bでいじっ初めてです。あなたが見ることができるように、VK_BACK_SPACE定数は、このように定義されています

public static final int VK_BACK_SPACE  = '\b'; 

定数はところでjava.awt.event.KeyEventクラスで定義されています。 IntelliJを使用すると、自動的に静的にインポートされます。

agetext\bかどうかを確認できます。そうであれば、方法から戻る:

private void txtAgeKeyTyped(java.awt.event.KeyEvent evt) { 
    char agetext= evt.getKeyChar(); 
    if (agetext == VK_BACK_SPACE) return; 
    if(!(Character.isDigit(agetext))){ 
     evt.consume(); 
     JOptionPane.showMessageDialog(null,"Age is only written in Numbers!"); 
    } 
} 
+0

Backspaceを無視する別の方法はありますか? – user3647634

+0

私に関する限り、無@ user3647634 – Sweeper

+0

@ user3647634これをチェックアウト:https://stackoverflow.com/questions/32018509/how-to-define-an-eclipse-mask-formatted-text-fieldそれは可能性があります助けます。 – Sweeper

関連する問題