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
-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
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
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());
}
}
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!
MUCHAS GRACIAS ME SIRVIO UN RESTO
TE agradezco