Foros del Web » Programación para mayores de 30 ;) » Java »

Tranformar a Mayuscula texto introducido en JTextField

Estas en el tema de Tranformar a Mayuscula texto introducido en JTextField en el foro de Java en Foros del Web. Buenos dias a todos los foreros!!! Esta es mi primera consulta en la parte de JAVA. :P Soy casi nuevo en lo de la progracion ...
  #1 (permalink)  
Antiguo 13/01/2012, 09:11
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 16 años, 2 meses
Puntos: 10
Tranformar a Mayuscula texto introducido en JTextField

Buenos dias a todos los foreros!!!

Esta es mi primera consulta en la parte de JAVA. :P

Soy casi nuevo en lo de la progracion en java tengo conocimientos digamos basicos (creo ) pero.......

El problema que tengo es que no se como transformar las letras que el usuario vaya a introducir en mi campo a mayusculas al momento de teclear, bueno si se que es con la propiedad de toUpperCase() del JtextField pero en que parte del codigo o en que metodo lo tengo que hacer....???

Mucho les agradeceria la ayuda brindada!!!!
__________________
Solo se... que no se nada!!! 0_o
  #2 (permalink)  
Antiguo 13/01/2012, 09:25
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 7 meses
Puntos: 71
Respuesta: Tranformar a Mayuscula texto introducido en JTextField

Hola, interesante, intente con el siguiente código en el evento KeyRelease de jTextField.

Código Java:
Ver original
  1. private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {
  2.         char c = evt.getKeyChar();
  3.         System.out.println(c);
  4.         String aux = jTextField1.getText();
  5.         jTextField1.setText("");
  6.         if(!aux.isEmpty())
  7.             aux=aux.substring(0,aux.length()-1);
  8.         aux+=String.valueOf(c).toUpperCase();
  9.         jTextField1.setText(aux);
  10.     }
Si le gusta siempre es bueno agradecer con Karma+
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #3 (permalink)  
Antiguo 13/01/2012, 09:28
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 7 meses
Puntos: 71
Respuesta: Tranformar a Mayuscula texto introducido en JTextField

No lo he probado, espero que Ud. lo haga y me diga si funcionó
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #4 (permalink)  
Antiguo 13/01/2012, 09:43
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 16 años, 2 meses
Puntos: 10
Respuesta: Tranformar a Mayuscula texto introducido en JTextField

Hola CapacProg!!!

Gracias por la ayuda.....

En que momento de mi codigo le agrego a mi campo el escuchdor de eventos?????

Por decir a un boton se le agrega asi:

btnAcepta.addActionListener(this);

Pero ya un jtextfield, como????? o es igual que al del boton????

muchas gracias de antemano
__________________
Solo se... que no se nada!!! 0_o
  #5 (permalink)  
Antiguo 13/01/2012, 10:01
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 7 meses
Puntos: 71
Respuesta: Tranformar a Mayuscula texto introducido en JTextField

Bien debe de implementar la interfaz keyListener, hay otras formas, para evitar los eventos vacíos; pero esto sirve

Código Java:
Ver original
  1. import java.awt.event.*;
  2. import javax.swing.*;
  3.  
  4. public class NewClass extends JFrame implements KeyListener {
  5.  
  6.     private JTextField jTextField1;
  7.  
  8.     public NewClass() {
  9.  
  10.         jTextField1 = new JTextField();
  11.         jTextField1.addKeyListener(this);
  12.     }
  13.  
  14.     @Override
  15.     public void keyTyped(KeyEvent e) {
  16.        
  17.     }
  18.  
  19.     @Override
  20.     public void keyPressed(KeyEvent e) {
  21.        
  22.     }
  23.  
  24.     @Override
  25.     public void keyReleased(KeyEvent e) {
  26.         if (e.getSource() == jTextField1) {
  27.             char c = e.getKeyChar();
  28.             System.out.println(c);
  29.             String aux = jTextField1.getText();
  30.             jTextField1.setText("");
  31.             if (!aux.isEmpty()) {
  32.                 aux = aux.substring(0, aux.length() - 1);
  33.             }
  34.             aux += String.valueOf(c).toUpperCase();
  35.             jTextField1.setText(aux);
  36.         }
  37.     }
  38. }

Si tiene dudas las comenta.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #6 (permalink)  
Antiguo 13/01/2012, 12:19
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 16 años, 2 meses
Puntos: 10
Respuesta: Tranformar a Mayuscula texto introducido en JTextField

Exceeeleeeeeeeeeente!!!!

Ya quedo!!!!

Muchisimas gracias!!!!!

Espero seguir contando con tu ayuda!!!

Una pregunta que significa el @Override??????? recuerdo que una vez el maestro que nos dio programacion en java lo explico pero no me acuerdo a que se refiere o por que se pone????????????


Saludos!!!
__________________
Solo se... que no se nada!!! 0_o
  #7 (permalink)  
Antiguo 13/01/2012, 12:51
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 7 meses
Puntos: 71
Respuesta: Tranformar a Mayuscula texto introducido en JTextField

@Override significa que el método declarado está sobrescribiendo o implementando el método del mismo nombre perteneciente a la superclase o interface. Más referencia aquí

Si le gusta debe de anotar con karma+
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #8 (permalink)  
Antiguo 14/01/2012, 11:40
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 11 meses
Puntos: 41
Respuesta: Tranformar a Mayuscula texto introducido en JTextField

Vamos por parte
Cita:
se que es con la propiedad de toUpperCase() del JtextField
Mal, el método pertenece a la clase String.

Implementar una Interface para algo con vano no tiene sentido.
Para tu propósito existe lo que se denomina "Implementación anónima" + Adapters Patterns.
Esta es una forma limpia, legible y que aplica varias bondades del lenguaje, no hay manipulación de Strings (cosa que siempre delata a los Java Juniors)
Código Java:
Ver original
  1. unJTextField.addKeyListener(new java.awt.event.KeyAdapter() {
  2.        public void keyTyped(java.awt.event.KeyEvent evt) {
  3.                 Character c = evt.getKeyChar();
  4.                 if(Character.isLetter(c)) {
  5.                     evt.setKeyChar(Character.toUpperCase(c));
  6.                 }
  7.             }
  8. });
Si la lógica se repite, necesita ser reutilizada , la transformás en un método de la misma clase o de alguna Utils y listo.

PD: No es que lo que te hayan dicho anteriormente esté mal (de hecho funciona) pero no es la mejor forma de hacerlo
__________________
BadProgrammerException!

Última edición por FiruzzZ; 14/01/2012 a las 11:53
  #9 (permalink)  
Antiguo 14/01/2012, 19:35
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Tranformar a Mayuscula texto introducido en JTextField

Hola,

Las implementaciones anteriores desde mi punto de vista personal creo que son correctas, pero dependen del uso que se les vaya a dar. Por lo mismo presento otra opción que sería el método para asegurarse que un componente solamente puede tener letras en mayúscula en cualquier momento.

Código Java:
Ver original
  1. public class UpperCasePlainDocument extends javax.swing.text.PlainDocument {
  2.     @Override
  3.     public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
  4.         super.insertString(offs, str.toUpperCase(), a);
  5.     }
  6. }
Código Java:
Ver original
  1. jTextField1.setPlainDocument(new UpperCaseDocument());
La ventaja es que estamos modificando el funcionamiento interno del JTextField y por lo tanto al insertar un texto por cualquier motivo nos aseguramos que este en mayúsculas, por ejemplo:

Código Java:
Ver original
  1. jTextField1.setText("hello world!");
Swing tiene bien definido el concepto de modelo, vista y controlador, en este caso estamos haciendo uso de la vista (JTextField) y su controlador (PlainDocument).

Pero al final depende de las necesidades del programa.

Saludos,
  #10 (permalink)  
Antiguo 24/05/2012, 16:44
 
Fecha de Ingreso: mayo-2012
Mensajes: 1
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Tranformar a Mayuscula texto introducido en JTextField

Marcos Del Pino Moreira:

public class KeyPressTextField {

//funcion para transformar entradas minusculas a mayusculas:

//1.- No controla el total de caracteres ingresados en el JTextField
public static void keyMayuscula(KeyEvent evt) {
evt.setKeyChar((String.valueOf(evt.getKeyChar()).t oUpperCase()).charAt(0));
}

//2.- Para controlar el total de caracteres ingresados en el JTextField
public static void keyMayuscula(KeyEvent evt, int maximoTamanio) {
if (((JTextField)evt.getSource()).getText().length()> =maximoTamanio){
evt.consume();
return;
}
evt.setKeyChar((String.valueOf(evt.getKeyChar()).t oUpperCase()).charAt(0));
}
}


Para implementarlo, agregue al control jTextfield un addKeyListener y llamamos al
metodo con la siguie linea:

KeyPressTextField.keyMayuscula(evt, 100);

ejemplo:
jTextfield.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent evt) {
KeyPressTextField.keyMayuscula(evt, 100);
}
});

Espero que les sirva, y disculpen no haber contestado antes,
es solo que acabo de ver el tema y registrarme en esta comunidad
  #11 (permalink)  
Antiguo 13/02/2013, 22:00
 
Fecha de Ingreso: febrero-2013
Mensajes: 1
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Tranformar a Mayuscula texto introducido en JTextField

Cita:
Iniciado por FiruzzZ Ver Mensaje
Vamos por parte

Mal, el método pertenece a la clase String.

Implementar una Interface para algo con vano no tiene sentido.
Para tu propósito existe lo que se denomina "Implementación anónima" + Adapters Patterns.
Esta es una forma limpia, legible y que aplica varias bondades del lenguaje, no hay manipulación de Strings (cosa que siempre delata a los Java Juniors)
Código Java:
Ver original
  1. unJTextField.addKeyListener(new java.awt.event.KeyAdapter() {
  2.        public void keyTyped(java.awt.event.KeyEvent evt) {
  3.                 Character c = evt.getKeyChar();
  4.                 if(Character.isLetter(c)) {
  5.                     evt.setKeyChar(Character.toUpperCase(c));
  6.                 }
  7.             }
  8. });
Si la lógica se repite, necesita ser reutilizada , la transformás en un método de la misma clase o de alguna Utils y listo.

PD: No es que lo que te hayan dicho anteriormente esté mal (de hecho funciona) pero no es la mejor forma de hacerlo
Gracias por el aporte, de verdad se aprecia... pero no veo necesario la discriminación. Estamos aqui para aprender. Nadie viene con todos los conocimientos integrados.
  #12 (permalink)  
Antiguo 14/02/2013, 02:50
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 2 meses
Puntos: 188
Respuesta: Tranformar a Mayuscula texto introducido en JTextField

Para eso también puedes usar un DocumentFilter (ver ejemplo)

http://www.java2s.com/Tutorial/Java/...ouppercase.htm
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: jtextfield, mayuscula
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 10:25.