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!