Java - Prob. con JTextField

 
Vista:

Prob. con JTextField

Publicado por pedro (13 intervenciones) el 29/06/2010 07:10:40
Necesito ayuda, tengo un jtextfield y quiero que todo lo que se escriba en el aparezca en mayusculas. Ademas, he visto que en algunas aplicaciones cuando presionan x ejem la tecla ENTER, en el jtext field aparece la palabra ENTER. Existen codigos para ese tipo de teclas? o eso solo se puede hacer manualmente detectando el evento. Por favor ayudenme en esas 2 cosas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Prob. con JTextField

Publicado por mayrita (163 intervenciones) el 29/06/2010 23:22:48
http://javafacil.netii.net/grafico.php#textfield

has un caretlistener y cambias las letras a upper (mayuscula)

y para lo de las teclas haces un keylistener
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prob. con JTextField

Publicado por pedro (13 intervenciones) el 29/06/2010 23:40:37
Primeramente muchas gracias por tu ayuda. En cuanto a mi duda sobre como cambiar a mayusculas todo lo que se escriba, me dices que use un caretlistener. Me podrias dar un poco mas de informacion sobre que evento captura? quiero que apenas se escriba una letra, esta aparezca en mayusculas. Espero respuesta alguna. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prob. con JTextField

Publicado por mayrita (163 intervenciones) el 29/06/2010 23:52:07
caret listener es cuando supoente tenes tu textfield y escribes algo cada vez que escribes una letra o mueves el cursor en tu textfield este evento se ejecuta entonces
solo pondrias tu letra en mayuscula
seria algo similar a esto

texto.addCaretListener(new CaretListener(){
public void caretUpdate(CaretEvent e){

boolean algo=texto.getText().toString().toUpperCase();

texto.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent ke){
//esto por si tambien haces algo con teclas
//tambien puedes probar ponerlo afuera del caretlistener segun lo que necesites hacer
}});

}});
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prob. con JTextField

Publicado por pedro (13 intervenciones) el 30/06/2010 01:05:21
Gracias. Esto tendria que resolver mi problema, pero me acaba de salir otro: stoy haciendo en terminos de codigo lo sgte:

texto.addCaretListener(new CaretListener(){
public void caretUpdate(CaretEvent e){

texto.setText(texto.getText().toUpperCase());

}});

pero me arroja un : java.lang.IllegalStateException: Attempt to mutate in notification

Lo inicializo correctamente, no se porque pasa esto. Alguna sugerencia? o hago algo mal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prob. con JTextField

Publicado por mayrita (163 intervenciones) el 30/06/2010 03:41:32
olvidate del caretlistener y usa en keylistener

texto.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent ke){
String a = texto.getText().toUpperCase().trim();
texto.setText(a);

}});
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prob. con JTextField

Publicado por pedro (13 intervenciones) el 30/06/2010 05:18:30
Bueno eso ya lo habia intentado anteriormente y no funciona. Al hacer eso hago que los caracteres anteriores al que yo he presionado se hagan mayusculas, pero no el caracter que acabo de presionar. Por lo tanto si la tecla que presiono es "a" y anteriormente decia "casa", obtendre un "CASAa". No habra otro modo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prob. con JTextField

Publicado por mayrita (163 intervenciones) el 30/06/2010 05:45:39
ya se ya se
declara un string publico para concatenar la cadena del jtextfield

y el metodo seria asi

texto.addKeyListener(new KeyAdapter(){
public void keyReleased(KeyEvent ke){
a = a + ke.getKeyText(ke.getKeyCode());
texto.setText(a);
}});

**no era keypressed es keyreleased
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prob. con JTextField

Publicado por pedro (13 intervenciones) el 30/06/2010 06:09:59
Que bien con el keyreleased queda casi perfecto, solo tengo un problemita, y es que cuando suelto la tecla, recien se vuelve mayuscula, mas si la tengo apretada esta sigue con su forma inicial.

No se si habras visto los emuladores de videojuegos, en los que permiten configurar las teclas a usar, y ahi apenas presionas una tecla, esta aparece en su forma mayuscula. Ese es el efecto que quiero obtener aca.

No se si se podra hacer eso unicamente con keylistener, quiza haya un listener mas a tomar en cuenta, en todo caso si alguien tiene informacion se agradece la ayuda.

Gracias mayrita =)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prob. con JTextField

Publicado por mayrita (163 intervenciones) el 30/06/2010 20:14:24
mmm toncs podrias probar teniendo varios eventos el que ya tienes y agregar el keypressed o keytyped
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prob. con JTextField

Publicado por mayrita (163 intervenciones) el 30/06/2010 20:20:19
toncs asi ve
asi si solo presiona una vez la cambia y si se queda presionada las va cambiando

texto.addKeyListener(new KeyAdapter(){
public void keyReleased(KeyEvent ke){
texto.setText(texto.getText().toUpperCase());
}});

texto.addKeyListener(new KeyAdapter(){
public void keyTyped(KeyEvent ke){
texto.setText(texto.getText().toUpperCase());
}});
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar