2011-07-26 2 views
2

현재 JtextField에서 전화 번호를 받고 있습니다. 문제는 세 자리 숫자를 입력 한 후 세 번째 정수 뒤에 "-"를 추가하려고합니다. 여섯 번째 정수가 추가 된 후에 다른 "-"가 추가됩니다. 나는 이것을 정확하게하는 방법을 모르겠습니다. 지금까지는 숫자 만 확인하고 숫자임을 확인했습니다. 나는이 같은 추가에 대해 생각했다전화 번호에 "-"를 더하기

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이되면, 당신은 무엇이든 거기에 가지고있는 글자로 설정하십시오. 백 스페이스가 눌려 졌을 때 고려해야 할 사항이 있습니다. 추가하지 말고 카운터에서 하나를 뺄 필요가 있습니다.

Enter 키를 누를 때 아무 것도 추가하지 않는 것과 같은 약 3-4 개의 특수 키에 대해 동일하게하십시오. 당신이 SwingWorker를 살펴있는 경우가 백그라운드에서이 작업을 수행 할 수 있습니다

..

행운

+0

스윙 워커 (Swing Worker)가 어떤 생각을하는지 알지 못합니다. – 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

은 아마 당신이 키 코드를 입력 할 때처럼, 서로 다른 텍스트 상자와 함께 작업 할 생각입니다 소프트웨어 등록.

관련 문제