2017-05-16 22 views
0

私はここでいくつかの質問を見ましたが、誰も私の問題を解決しません。私はJPasswordFieldを持っていると私は、ユーザーがEscPinで入力以上4桁JPasswordFieldJPasswordFieldを4桁に制限する方法は?

private void EscPinActionPerformed(java.awt.event.ActionEvent evt) {          
    // TODO add your handling code here: 
} 

private javax.swing.JButton Entrar; 
private javax.swing.JTextField EscNConta; 
private javax.swing.JPasswordField EscPin; 
private javax.swing.JLabel Logo; 
private javax.swing.JLabel NConta; 
private javax.swing.JLabel Pin; 
private javax.swing.JButton Sair; 
+0

、新しいクラス –

+0

@Carcigenicateだけdoesntの仕事を動作しないことと、ここで、iはこれを置きますか?私はJPasswordFieldの 'private void'を入れ、ユーザーは4桁以上を置くことができます –

答えて

0

あなたはJPasswordFieldのの内部文書を取得する必要がないことを必要とします。これを試してみてください。

PlainDocument d=(PlainDocument) jPasswordField1.getDocument(); 
d.setDocumentFilter(new DocumentFilter(){ 

     @Override 
     public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException { 
      String string =fb.getDocument().getText(0, fb.getDocument().getLength())+text; 

      if(string.length() <= 4) 
      super.replace(fb, offset, length, text, attrs); //To change body of generated methods, choose Tools | Templates. 
     } 



    }); 
+0

をクリートせずにそれを行う方法がある私のため –

+0

コンストラクタの中に。 –

+0

ありがとうございます。出来た。 –

関連する問題