Jtexfield vinculado a jtable nao aceita novo document, para limitar caracteres

Boa noite a todos, estou desenvolvendo uma aplicação para automação comercial em swing, estou na parte dos cadastros e necessitei limitar a quantidade de caracteres em um jtextfield, após olhar alguns posts aqui do forum conssegui a solução, que orienta a criar uma classe para ser o novo document do jtextfield, sendo assim utilizei a solução, que a principio nao funcionou, até que descobri que quando vinculo o atributo text, a um campo da jtable ele não limita a quantidade de caracteres porem ao desvincular ele funciona blz.
E estou precisando limitar essa quantidade para não dar erro quando o usuario digitar caracteres a mais.

Codigo da classe para criar o novo document

public 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);
  }
}
// Depois usei no textfield

nome1Field.setDocument(new TamanhoMaximo(5))

Desde já agradeco a atenção.

Oi FernandoLuiz,

Poderia usar o JFormattedTextField MaskFormatter? :roll:

Se a resposta for sim:http://www.javalobby.org/java/forums/t48584.html

Seria uma boa idéia redefinir também o método replace() de PlainDocument.

Uma maneira mais agressiva de limitar a quantidade de caracteres do JTextField seria usar um DocumentListener no Document do JTextField:

http://download.oracle.com/javase/6/docs/api/javax/swing/text/Document.html#addDocumentListener(javax.swing.event.DocumentListener)

[quote=Anime]Oi FernandoLuiz,

Poderia usar o JFormattedTextField MaskFormatter? :roll:

Se a resposta for sim:http://www.javalobby.org/java/forums/t48584.html [/quote]

Bom dia, entao vou tentar usar o JFormattedTextField, mas pode me explicar como eu limito a quantidade de caracteres, ou seja campo obs: quero que digite no maximo 150 caracteres com ficaria o codigo para esta validação.

Obrigado.

[quote=FernandoLuiz]

Bom dia, entao vou tentar usar o JFormattedTextField, mas pode me explicar como eu limito a quantidade de caracteres, ou seja campo obs: quero que digite no maximo 150 caracteres com ficaria o codigo para esta validação.

Obrigado.[/quote]

Bom dia,

Afff,tudo isso de caracteres,rsrs…Agora vc me pegou…fiquei curiosa…vou pesquisar…se encontrar a resposta… te conto,ok :wink:

OBS:Você poderia limitar o numero de caracteres direto no banco de dados… :wink:

Nem lembrei,mas é só vc validar os dados de entrada…

[quote=roger_rf]Seria uma boa idéia redefinir também o método replace() de PlainDocument.

Uma maneira mais agressiva de limitar a quantidade de caracteres do JTextField seria usar um DocumentListener no Document do JTextField:

http://download.oracle.com/javase/6/docs/api/javax/swing/text/Document.html#addDocumentListener(javax.swing.event.DocumentListener)[/quote]

Boa noite desculpa mas sou iniciante em Java e Swing, pode me dar um exemplo de como usar DocumentListener, como voce me sugeriu

Obrigado.