Não sei se alguem ja teve este problema mas eu ja tive muitos e como
eu desconhecia que era possivel limitar caracteres no JTextFiel eu
acabava usando o JFormatedTextField que acabava dando um pouco de
trabalho.
Abaixo esta um codigo simples para limitar o JTextFiel e uma classe
para testar.:
=========== Classe que limita os caracteres ============
import javax.swing.text.*;
class TamanhoMaximo extends PlainDocument{
int tamMax;
public TamanhoMaximo(int tam){
tamMax = tam;
}
public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException{
if((getLength() + str.length()) <= tamMax)
super.insertString(offs, str, a);
}
}
============ Classe de Teste ===============
import javax.swing.*;
import java.awt.*;
public class TamanhoMaximoTeste extends JFrame{
JTextField caixa;
public TamanhoMaximoTeste(){
super("Limitando a quantidade de caracteres em um JTextField");
Container tela = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
tela.setLayout(layout);
caixa = new JTextField(10);
caixa.setDocument(new TamanhoMaximo(5));
tela.add(caixa);
setSize(350, 100);
setVisible(true);
}
public static void main(String args[]){
TamanhoMaximoTeste app = new TamanhoMaximoTeste();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}