2011-01-25 5 views
2

그래서 JFormattedTextField이 있고 문자 및 하이픈 이외의 문자를 입력하지 못하도록 제한해야합니다. 입력해야 할 문자열의 길이를 명시 적으로 알지 않고 MaskFormatter을 사용하는 방법을 잘 모르겠습니다.문자열의 길이를 모른 채 JFormattedTextField에 MaskFormatter를 사용하려면 어떻게해야합니까?

내 코드는 현재 다음과 같습니다

MaskFormatter formatter = new MaskFormatter(); 
formatter.setValidCharacters("ABCDEFGHIJKLMNOPQRSTUVWXYZabscedfghijklmnopqrstuvwxyz-"); 
JFormattedTextField firstNameTextField = new JFormattedTextField(formatter); 

내가 firstNameTextField.setText(getName()) 전화

는, 텍스트를 사용할 수없는, 빈 텍스트 필드로 날 떠나 설정되지 않습니다.

도움을 주시면 감사하겠습니다. 감사.

답변

0

문자열 길이면에서 아무런 노력도 필요 없기 때문에 KeyAdapter와 함께 일반 JTextField와 KeyListener를 사용하면 JFormattedTextField와 MaskFormatter의 효과를 훨씬 쉽게 얻을 수 있다는 인상을받습니다. 허용 된 문자열에 대해 각 키 입력을 점검하고 문자 또는 경고음을 승인하십시오.

0

이봐 난 비슷한 문제를 가지고 있었고, 내가 모든 KeyListener

을 Heres 코드 여기에 'F'

jTextFieldName.addKeyListener(new KeyListener() { 

      @Override 
      public void keyTyped(KeyEvent evt) { 
       char c = evt.getKeyChar(); 
       if(!Character.isDigit(c) || (c==KeyEvent.VK_BACK_SPACE) || (c==KeyEvent.VK_DELETE)) 
       { 
        f.getToolkit().beep(); 
        evt.consume(); 
       } 

      } 

      @Override 
      public void keyReleased(KeyEvent e) { 
      } 
      @Override 
      public void keyPressed(KeyEvent e) { 
      } 
     }); 

와 같은 대신 jFormatter이 JTextField를했습니다의 사용 acheived 어떤 JFrame의

에 불과하다