Limitar Caracteres JtextField

246 views
Skip to first unread message

Jefferson

unread,
May 28, 2011, 10:04:02 PM5/28/11
to jug.cl
Buenas

Lo que pasa es que deseo limitar la cantidad de caracteres que se
pueden ingresar a un jtextfield.
He encontrado el código que se encuentra acá http://www.rgagnon.com/javadetails/java-0198.html
pero no me funciona. He mirado en varias paginas y las que he visto
han sacado el código e allí.
Alguien podría ayudarme con esto?

Gracias de antemano

Saludos

Sonic

unread,
May 30, 2011, 3:51:14 PM5/30/11
to jug.cl
package com.revolution.developer.view.util;

import javax.swing.text.BadLocationException;
import javax.swing.text.AttributeSet;
import javax.swing.text.PlainDocument;

public class MaxLengthDocument extends PlainDocument {
//--------------------------------------------------------------------------
private int max;
//--------------------------------------------------------------------------
// create a Document with a specified max length
public MaxLengthDocument(int maxLength) {
max = maxLength;
}
//--------------------------------------------------------------------------
// don't allow an insertion to exceed the max length
public void insertString(int offset, String str, AttributeSet
a)throws BadLocationException {
if (getLength() + str.length() > max)
java.awt.Toolkit.getDefaultToolkit().beep();
else super.insertString(offset, str, a);
}
//--------------------------------------------------------------------------
}

asi se usa
new JTextField(new MaxLengthDocument(30),"",30);

saludos

On May 28, 10:04 pm, Jefferson <jeffer...@gmail.com> wrote:
> Buenas
>
> Lo que pasa es que deseo limitar la cantidad de caracteres que se
> pueden ingresar a un jtextfield.
> He encontrado el código que se encuentra acáhttp://www.rgagnon.com/javadetails/java-0198.html

Jefferson Arrubla

unread,
May 30, 2011, 5:48:50 PM5/30/11
to ju...@googlegroups.com
Hi

Lo que hice con lo que me pasaste fue crear una clase nueva, (MaxLengthDocument) pero no me funciona deja que inserte cuanto carácter ingreso.
Luego, probé poniendola como clase anónima pero aun así no me funciona.
Alguna otra recomendación?

Gracias de antemano

Saludos

2011/5/30 Sonic <mauricio....@gmail.com>
--
Has recibido este mensaje porque estás suscrito al grupo "jug.cl" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a ju...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a jugcl+un...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/jugcl?hl=es.


Jefferson Arrubla

unread,
Jun 2, 2011, 12:26:36 PM6/2/11
to ju...@googlegroups.com
Hi

He encontrado este otro algoritmo

 jTextField1.addKeyListener( new KeyAdapter() {
            public void keyPressed(KeyEvent e) {    
                text = jTextField1.getText();
                if (text.length() > 8) {
                    text = text.substring(0, 8);
                    jTextField1.setText(text);
                    System.out.println(text);
                }
            }

        });

Es un listener, pero lo que acontece es que cuando, se ingresa el ultimo carácter este se reemplaza en el textbox, me explico, allí lo tengo para que solo pueda ingresar 8 caracteres, pero si ingreso un 9no este reemplaza al 8vo carácter que había, pero lo curiosos es que cuando miro en la salida a consola esto no pasa.

Alguien me podría dar una explicación? o me podría decir esto por que pasa?

Gracias

Feliz día

2011/5/30 Jefferson Arrubla <jeff...@gmail.com>
Reply all
Reply to author
Forward
0 new messages