2011-07-26 31 views
2

私は現在、JtextFieldから電話番号を取得しています。問題は3桁の数字を入力した後に3番目の整数の後に " - "を追加したいという問題です6番目の整数が追加された後に別の " - "が追加されます。私はこれをどうやって行うのか正確にはわかりません。これまでのところ、私は数字だけをチェックして、数字であることを確認しています。私はこのような何かを追加することを考えていた電話番号に " - "を追加する

homeNum.addKeyListener(new KeyAdapter() { 
     @Override 
     public void keyTyped(KeyEvent e) { 
      String homeValue = homeNum.getText(); 
      if (e.getKeyChar() >= '0' && e.getKeyChar() <= '9' || e.getKeyChar() == '-' || e.getKeyChar() == '\b') { 


         homeNum.setEditable(true); 
         message.setText(""); 

     } 
      else { 
       homeNum.setEditable(false); 
       message.setText("* Enter only numeric digits(0-9)"); 

       } 

     } 

私は、私はここで何かを追加する必要がありますかなり確信しているが、問題は、私はあまりにも望んでいた場合、私はそれを削除することができないということです。

if(homeValue.length()==3) 
    { 
     homeNum.setText(homeValue+"-"); 
    } 

何かヘルプ/ポインタがありがとう、ありがとう。

答えて

2

一つの方法を見つけることができますが、これは..あなたがキーの回数を監視していますが押された。 3になると、そこに何を持っているのかを確定します。-これで、バックスペースを押したときのように考慮する必要があります。追加するのではなく、カウンターから1つを引く必要があります。

Enterキーを押したときに何も追加しないなど、約3-4の特殊キーについても同じ操作を行います。あなたはSwingWorkerのを見ている場合は、バックグラウンドでこれらの操作を行うことができ

..

幸運

+0

スイングワーカーが何をしているのかわかりません。 – Jazzy

+0

このhttp://java.sun.com/products/jfc/tsc/articles/threads/threads2.htmlをご覧ください – DaMainBoss

0

これを支援するオンラインチュートリアルがたくさんあります。

public class TextVerifyInputRegularExpression { 

/* 
    * Phone numbers follow the rule 
    * [(][1-9][1-9][1-9][)][1-9][1-9][1-9][-][1-9][1-9][1-9][1-9] 
    */ 
    private static final String REGEX = "[(]\\d{3}[)]\\d{3}[-]\\d{4}"; //$NON-NLS-1$ 

    private static final String template = "(###)###-####"; //$NON-NLS-1$ 

    private static final String defaultText = "(000)000-0000"; //$NON-NLS-1$ 

    public static void main(String[] args) { 

チュートリアルでは、あなたがそれを行うことができますhere

0

は、多分それはあなたがキーコードを記入する際のように、別のテキストボックスで動作するように考えですソフトウェア登録用。

関連する問題