java - 如何将 JPasswordField 限制为 4 位数字?

标签 java jpasswordfield

我刚刚在这里看到了一些问题,但没有一个能解决我的问题。我有一个JPasswordField我需要用户不能在 EscPin JPasswordField 中输入超过 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;

最佳答案

您必须获取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.
        }



    });

关于java - 如何将 JPasswordField 限制为 4 位数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44008323/

相关文章:

Netbeans 中的 Java 编码

java - 如何在 jPasswordField 中显示字符而不是 * 登录 java?

java - 使用编辑器验证表格的单元格

java - 使用JPasswordField并使用getPassword +服务器登录过程处理密码

java - 遍历(读取)静态 DOM 文档对象是否线程安全?

java - 调用打包后滚动条不显示

java - 从 Netsuite 中保存的搜索中获取字段值为空

java - 什么时候用 '==' 运算符比较对象和基元是合法的?

java - 如何在swing组件的JTextField中输入特殊字符作为Password?

java - 空指针异常