2011-07-26 7 views
2

Je travaille actuellement avec l'obtention d'un numéro de téléphone d'un JtextField, le problème que j'ai est qu'après trois chiffres sont entrées je veux ajouter un "-" après le troisième nombre entier est ajouté puis un autre "-" après l'ajout du sixième entier. Je ne suis pas sûr exactement comment faire ceci. Jusqu'à présent, je vérifie seulement les chiffres et je m'assure qu'ils sont des chiffres. Je suis sûr que je dois ajouter quelque chose,Ajouter "-" après dans le numéro de téléphone

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)"); 

       } 

     } 

Je pensais à ajouter quelque chose comme ça dans, mais le problème est que je ne peux pas le supprimer si je voulais aussi.

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

Tout aide/pointeurs serait grandement apprécié, merci.

Répondre

2

Une façon de le faire est ce .. Vous surveiller le nombre de fois une clé a été pressé. Quand il arrive à 3, vous définissezText à ce que vous avez là plus un - Maintenant, il y a d'autres choses à considérer comme lorsque l'espace arrière a été pressé, vous devez soustraire un de votre compteur plutôt que d'ajouter. Faites de même pour environ 3-4 touches spéciales (comme ne rien ajouter lorsque vous appuyez sur Entrée).

Vous pouvez faire ces en arrière-plan si vous avez un coup d'oeil au SwingWorker ..

Bonne chance

+0

Aucune idée de ce que Swing Worker fait. – Jazzy

+0

Jetez un oeil à ce http://java.sun.com/products/jfc/tsc/articles/threads/threads2.html – DaMainBoss

0

Il y a beaucoup de tutoriels en ligne pour aider à ceci:

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) { 

Un tutoriel se trouve here

0

Peut-être est une idée de travailler avec différentes zones de texte, comme lorsque vous remplissez un code clé pour l'enregistrement de logiciel.