Limitar número de caracteres num jTextField

Com faço para limitar o número de caracteres num jTextField?
procurei mas não achei uma propriedade tipo maxLength ou coisa parecida.

http://forum.java.sun.com/thread.jspa?threadID=657901&messageID=3868055

Se preferir, tem também um tutorial do guj (solução caseira):

http://www.guj.com.br/java.tutorial.artigo.29.1.guj

Flw!

Valew

é mt mais fácil usar um jFormatedTextField e criar uma máscara só de *(aceita qualquer coisa) do tamanho q vc kiser

Por exemplo:
um jFormatedTextField limitado a 5 caracteres, sejam eles quaisquer símbolos, vai na propriedade de máscara personalizada dele e coloca: *****.

Pornto, meio gambiarra mas dá certinho…kkkkk

crie a seguinte classe:


import javax.swing.text.*;

public class LimitaNroCaracteres extends PlainDocument 
{
    private int iMaxLength;

    public LimitaNroCaracteres(int maxlen) {
        super();
        iMaxLength = maxlen;
    }

    @Override
    public void insertString(int offset, String str, AttributeSet attr)
                    throws BadLocationException {
        //if (s == null) return;

        if (iMaxLength <= 0)        // aceitara qualquer no. de caracteres
        {
            super.insertString(offset, str.toUpperCase(), attr);
            return;
        }

        int ilen = (getLength() + str.length());
        if (ilen <= iMaxLength)    // se o comprimento final for menor...
            super.insertString(offset, str.toUpperCase(), attr);   // ...aceita str
        }

}

e para usar coloque assim no construtor da sua classe que tem o JTextField

// aceitar apenas 20 caracteres
seuJTextField.setDocument(new LimitaNroCaracteres(20)); 

T+ :thumbup:

Olá caro colegas…
segui esse tutorial do guj para limitar caracteres, é normal deixar o jtexfield como se tivesse o capslock ativado??

Tenho uma classe limitarcaracteres como o tutorial do link http://www.guj.com.br/articles/29
tenho um jtexfield que tem pertence a um jcontentpane do formulario, como segue no codigo do jtextfield abaixo

private JTextField getTxtCliente() {
if (txtCliente == null) {
txtCliente = new JTextField();
txtCliente.setBounds(new Rectangle(10, 67, 341, 19));
txtCliente.setDocument(new LimitaNroCaracteres(10));
}
return txtCliente;
}

Teoricamente criar o txtcliente limitado a 10 caracteres e quando executar o form e digitar no txtcliente limita-se a 10 caracteres
porem fica tudo maiusculo, tem como deixa-lo normal?

txtcliente.settext(“joaquim”) está ficando JOAQUIM

Desde já, agradeço

Movido para Interface Gráfica.