Limitar la cantidad de caracteres en un JTextField

HTML, CSS, PHP, JavaScript, Java... tus dudas por aquí...
Responder
luisdavidgd
Nivel 2
Mensajes: 66
Registrado: 16 Jun 2009, 00:47
Twitter: @luisdavidgd
Ubicación: de_dust2
Contactar:

Limitar la cantidad de caracteres en un JTextField

Mensaje por luisdavidgd »

Para empezar debo poner que estoy trabajando en NetBeans, bueno, lo mismo del título...

Lo que quiero hacer es que una caja de texto (JTextField) no me permita colocar más de un caracter, lo que he logrado hacer es validar eso pero recién cuando se presenta algún evento:

Ejemplo:

Código: Seleccionar todo

if(JTextField.getText().length() != 1)
//aca la excepción
else
//aca sigue todo normal
[/size]
pero yo quisiera que no se pudiera colocar más de un caracter, sin necesidad de hacer válido algun evento, he buscado en las propiedades del mismo JTextField, pero sin encontrar nada que me ayude.

Espero haberme hecho entender y que alguien pueda ayudarme.

PD: Alejandro, cuando me registré al foro comenté (en presentaciones) que tenías muy bien organizado todo esto, pero quedaría más lindo aún si divides el foro 'Programación' en sub-foros por lenguajes, tipo: C++, C#, Java & Javascript, etc; solo como sugerencia, sin ánimos de ofender ni nada... Saludos!
Avatar de Usuario
jProgr
Nivel 7
Mensajes: 706
Registrado: 08 May 2009, 00:13
Contactar:

Re: Limitar la cantidad de caracteres en un JTextField

Mensaje por jProgr »

En mi caso uso:

Código: Seleccionar todo

TextField (nombre de variable)=new TextField ("lo que quieres que vaya en el campo", 25);
y luego mas abajo donde quieras ponerlo le das un:
add(nombre de la variable)
Donde el 25 es la cantidad de caracteres permitidos, asi lo manejo yo, tambien en NetBeans.
luisdavidgd
Nivel 2
Mensajes: 66
Registrado: 16 Jun 2009, 00:47
Twitter: @luisdavidgd
Ubicación: de_dust2
Contactar:

Re: Limitar la cantidad de caracteres en un JTextField

Mensaje por luisdavidgd »

jProgr escribió:En mi caso uso:

Código: Seleccionar todo

TextField (nombre de variable)=new TextField ("lo que quieres que vaya en el campo", 25);
y luego mas abajo donde quieras ponerlo le das un:
add(nombre de la variable)
Donde el 25 es la cantidad de caracteres permitidos, asi lo manejo yo, tambien en NetBeans.
OK, eso si dibujo mi formulario desde código ¿cierto? recuerdo haber trabajado asi con applets y dibujaba el form desde una clase.

Sucede que ahora he dibujado el formulario con los paneles Swing, he jalado un JTextField y quiero validarlo para que no me deje colocar más de un caracter
¿manejas swing como para que me puedas ayudar?

Gracias por tu tiempo, saludos!
Avatar de Usuario
jProgr
Nivel 7
Mensajes: 706
Registrado: 08 May 2009, 00:13
Contactar:

Re: Limitar la cantidad de caracteres en un JTextField

Mensaje por jProgr »

Pues yo soy mas applets que programas a consola y a nivel maquina, pero si puedo ayudarte.
En tu if has probado poner que si es mas largo haga focus en el siguiente campo o pierda focus? tambien puede ser otra forma con jTextField
luisdavidgd
Nivel 2
Mensajes: 66
Registrado: 16 Jun 2009, 00:47
Twitter: @luisdavidgd
Ubicación: de_dust2
Contactar:

Re: Limitar la cantidad de caracteres en un JTextField

Mensaje por luisdavidgd »

jProgr escribió:Pues yo soy mas applets que programas a consola y a nivel maquina, pero si puedo ayudarte.
En tu if has probado poner que si es mas largo haga focus en el siguiente campo o pierda focus? tambien puede ser otra forma con jTextField
lo que he hecho hasta el momento es algo asi (me da flojera abrir el netbeans, pero lo se mas o menos de memoria):

Código: Seleccionar todo

if(txt1.getText().toLowerCase().isEmpty(){
lblMensaje.setText("ingrese un caracter");
txt1.setText("");
txt1.requestFocus();
} else if(txt1.getText().toLowerCase().length() != 1{
lblMensaje.setText("ingrese solo un caracter");
txt1.setText("");
txt1.requestFocus();
} else {
//YA ACA TODO COMO DEBE FUNCIONAR CON UN CARACTER INGRESADO
}
[/size]
pero eso siempre y cuando presione el botón para que me valide la excepción, me gustaría que de plano no me deje escribir más de un caracter, o sea que si intento escribir mas simplemente no se pueda.

Si es sencillo y tienes una noción de como hacerlo sería genial que me ayudes, caso contrario descuida, pues asi como lo tengo con el if, funciona de maravilla, solo es un detalle que queria agregarle a mi aplicación.

PD: Igual no te salvas porque te pediré ayuda cuando trabaje con applets (=
Avatar de Usuario
jProgr
Nivel 7
Mensajes: 706
Registrado: 08 May 2009, 00:13
Contactar:

Re: Limitar la cantidad de caracteres en un JTextField

Mensaje por jProgr »

Pues no, yo casi no trabajo con jTextField asi que no sabira decirte lo que me pides....
Pues cuando andes en applets con gusto te ayudare XD
Soldier
Nivel 1
Mensajes: 2
Registrado: 28 Ago 2012, 12:34

Re: Limitar la cantidad de caracteres en un JTextField

Mensaje por Soldier »

Buscando encontre esta solucion espero te sirva de algo.


private JTextField jTextFieldName =new JTextField();

private int limite = 8;

jTextFieldName.addKeyListener(new KeyListener(){

public void keyTyped(KeyEvent e)

{if (jTextFieldName.getText().length()== limite)

e.consume();
}

public void keyPressed(KeyEvent arg0) {
}

public void keyReleased(KeyEvent arg0) {
}
});
Soldier
Nivel 1
Mensajes: 2
Registrado: 28 Ago 2012, 12:34

Re: Limitar la cantidad de caracteres en un JTextField

Mensaje por Soldier »

Prueba con esta otra tambien.

//Permite hasta dos caracteres en el campo txtEdad
private void txtEdadKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if (txtEdad.getText().length()== 2){ // 2 es la cantidad de caracteres permitidos
evt.consume();
Toolkit.getDefaultToolkit().beep(); //Como ves, implementé un beep para que suene si se trata de ingresar mas XD
}
}
spedrot3
Nivel 1
Mensajes: 1
Registrado: 02 Feb 2016, 12:41
Twitter: @spedrot3

Re: Limitar la cantidad de caracteres en un JTextField

Mensaje por spedrot3 »

Toolkit.getDefaultToolkit().beep(); //Como ves, implementé un beep para que suene si se trata de ingresar mas XD

c0m0 se usar@ e$@ line@ 2 l@ qu3 hac3 r3ferenc!a lo del Toolkit especificamente... salu2
Responder