Limitar la cantidad de caracteres en un JTextField


HTML, CSS, PHP, JavaScript, Java... tus dudas por aquí...
   

Limitar la cantidad de caracteres en un JTextField

Notapor luisdavidgd » Jun 2009, 15:58

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

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!
luisdavidgd
Nivel 2
 
Mensajes: 66
Registrado: Jun 2009, 00:47
Ubicación: de_dust2
Twitter: @luisdavidgd



Re: Limitar la cantidad de caracteres en un JTextField

Notapor jProgr » Jun 2009, 17:38

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.
Avatar de Usuario
jProgr
Nivel 7
 
Mensajes: 732
Registrado: May 2009, 00:13

Re: Limitar la cantidad de caracteres en un JTextField

Notapor luisdavidgd » Jun 2009, 22:49

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!
luisdavidgd
Nivel 2
 
Mensajes: 66
Registrado: Jun 2009, 00:47
Ubicación: de_dust2
Twitter: @luisdavidgd

Re: Limitar la cantidad de caracteres en un JTextField

Notapor jProgr » Jun 2009, 23:09

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
Avatar de Usuario
jProgr
Nivel 7
 
Mensajes: 732
Registrado: May 2009, 00:13

Re: Limitar la cantidad de caracteres en un JTextField

Notapor luisdavidgd » Jun 2009, 23:42

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
}

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 (=
luisdavidgd
Nivel 2
 
Mensajes: 66
Registrado: Jun 2009, 00:47
Ubicación: de_dust2
Twitter: @luisdavidgd

Re: Limitar la cantidad de caracteres en un JTextField

Notapor jProgr » Jun 2009, 13:30

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
Avatar de Usuario
jProgr
Nivel 7
 
Mensajes: 732
Registrado: May 2009, 00:13

Re: Limitar la cantidad de caracteres en un JTextField

Notapor Soldier » Ago 2012, 12:37

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: Ago 2012, 12:34

Re: Limitar la cantidad de caracteres en un JTextField

Notapor Soldier » Ago 2012, 12:39

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
}
}
Soldier
Nivel 1
 
Mensajes: 2
Registrado: Ago 2012, 12:34


Volver a Programación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados