terça-feira, 4 de setembro de 2007

Como limitar a quantidade de caracteres de um JTextField

Oi povo.
Muita gente tem dúvida nisso, então eu vou postar um jeito fácil de fazer um limitador de texto pra colocar em JTextFields.

Primeiro, cria-se uma classe.

LimitadorTexto.java:


import javax.swing.text.*;

public class LimitadorTexto extends PlainDocument {

private int limite = 0;

public LimitadorTexto(int l){
this.limite = l;
}

public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {

int sobra = limite - getLength();
int comprimento = ( sobra > str.length() ) ? str.length() : sobra;
super.insertString(offs, str.substring(0, comprimento), a);
}
}



Pronto. Agora é só usar:


import LimitadorTexto;

...

private JTextField nome = new JTextField(new LimitadorTexto(x), "", 10);



Daí é só trocar o "x" pelo número de caracteres que você precisa.

(Achei esse código no Fórum Portal Java).

Amanhã eu posto um outro jeito legal de fazer isso, com direito a bloqueio de caracteres indesejáveis e tudo.

Té.

4 comentários:

Anônimo disse...

mto bom
me audou bastante

Anônimo disse...

Ótimo!!!!
Ajudou muito aqui. obrigada :D

Carlos Alberto disse...

Me ajudou muito, já estava há vários dias precisando disso! Obrigado!

André Hiroshi Tanaka disse...

textFieldEntradaCpf.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
super.keyTyped(e);
if(textFieldEntradaCpf != null && textFieldEntradaCpf.getText() != null && textFieldEntradaCpf.getText().length() >= 9){
e.setKeyChar((char) KeyEvent.VK_CLEAR);
}
}
});