solo numeros en java

Iniciado por A L E J O, 4 Noviembre 2009, 04:57 AM

0 Miembros y 2 Visitantes están viendo este tema.

A L E J O

hola tengo un programa que me recoge de una caja de texto   JTextField txt2;  un valor y deseo que solo sea numerico y no caracter?????



tambien deseo que de otra caja de texto   JTextField txt3;    que ingrese caracteres en minuscula se conviertan en mayuscula.   ??????


GRACIAS    A L E J O

sapito169

-la caja de texto indicata que presenta validacion y reformato de texo es JFormatedTextfield
-JFormatedTextfield es una de las clases mas conplicadas y poderosas de java
-ya hay un componente que se valida solo por defecto que su contenido sea solo numero JSpiner


recomiendo
para la primera pregunta


para la segunda
simplemente arrastra y pega un JSpiner de tu ide a tu formulario y nada mas

Debci

Cita de: A L E J O en  4 Noviembre 2009, 04:57 AM
hola tengo un programa que me recoge de una caja de texto   JTextField txt2;  un valor y deseo que solo sea numerico y no caracter?????



tambien deseo que de otra caja de texto   JTextField txt3;    que ingrese caracteres en minuscula se conviertan en mayuscula.   ??????


GRACIAS    A L E J O
Puedes usar el metodo String.parseInt(); para pasar de string a int u otros.

Saludos

sapito169

solucion  :D


......
public class miVentatinata extends JFrame{
.....
public miVentatinata(){
......
jTextField1.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTextField1FocusLost(evt);
            }
        });

}

private void jTextField1FocusLost(java.awt.event.FocusEvent evt) {
        jTextField1.setText(jTextField1.getText().toUpperCase());
    }

}


Trickman

#4
Veamos, supongo que quieres que te controle los caracteres sobre la marcha, ¿no? O sea, que diréctamente solo te deje escribir números o que te cambie diréctamente a mayúsculas cada letra.

Para el primer problema (siempre y cuando por "numérico" te refieres a "entero" y no a flotante o a double, puesto que ahí deberías controlar otros caracteres además de los dígitos):



public void compruebaPulsacionEntero(java.awt.event.KeyEvent e) {
   char teclaPulsada = e.getKeyChar(); // Recogemos, a partir del evento, la tecla que se pulsó

   if (!Character.isDigit(teclaPulsada)) { // Si la tecla pulsada no es un dígito, entonces...
       e.consume(); // Borramos la última letra introducida (lo hace muy rápido, la
                           // letra nunca se escribe en el textfield)
   }
}



Para el segundo problema, es casi lo mismo, pero cambiando alguna cosilla:



public void convierteMayusculas(java.awt.event.KeyEvent e) {
   char teclaPulsada = e.getKeyChar(); // Recogemos, a partir del evento, la tecla que se pulsó

   Character.toUpperCase (teclaPulsada); // La convertimos a mayúsculas
   
}



Y, para que reaccione el textField a estos cambios, lo que tienes que hacer es escribir, en el método donde defines el textfield ( getTextField2() o getTextField3(), en tu caso), lo siguiente (insisto, escribelo DENTRO del método donde defines el textfield):



   /* Le decimos al textfield que "escuche" cuando le escriban un caracter */
   <NOMBRE_DE_ESTE_TEXTFIELD>.addKeyListener(new java.awt.event.KeyAdapter()) {
       public void keyTyped(java.awt.event.KeyEvent e) {
           /* Llama al método para las mayúsculas o oara solo números, el que sea */
       }
   }



¡Y ya está!

¡Saludos!

A L E J O

MUCHAS GRACIAS ME SIRVIO UN RESTO
TE agradezco