Com faço para limitar o número de caracteres num jTextField?
procurei mas não achei uma propriedade tipo maxLength ou coisa parecida.
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.