2011-01-25 49 views
2

所以我有一個JFormattedTextField,我需要限制用戶輸入除字母和連字符之外的任何內容。我不太確定如何在不明確知道要輸入的字符串長度的情況下使用MaskFormatter如何在不知道字符串長度的情況下對JFormattedTextField使用MaskFormatter?

我的代碼目前看起來是這樣的:

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

當我打電話firstNameTextField.setText(getName()),文本不被設置,讓我無法使用的,空的文本字段。

任何幫助將不勝感激。謝謝。

回答

0

由於您不想在字符串長度方面做出任何承諾,我有一種印象,如果您使用常規的JTextField和KeyListener以及其KeyAdapter,實現JFormattedTextField及其MaskFormatter的效果要容易得多。您可以根據允許的字符串檢查每個擊鍵,並接受字符或嘟嘟聲。

0

嘿,我有一個類似的問題,我用什麼來代替jFormatter是JTextField中和來達到的相同與KeyListener的

繼承人的代碼

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

這裏「F」是什麼,但JFrame的

相關問題