Problema con los focus en Java

bicugo
19 de Noviembre del 2003
Tengo un problema y me estoy volviendo loco para arreglarlo.
El problema es que tengo un proceso que es cuando pierda el foco de un textbox compruebe si su contenido es correcto y te de un mensaje de error.

El problema lo tengo que te da el mensaje de error, pero te deja el foco en el boton, checkbox o lo que sea que has pulsado y hasta que no vuelvas a pinchar en el no pierde el foco.

Supongo que se haga con la función lostfocus, pero es que nio se como funciona y además por internet te viene la función pero no te explica como se usa.

En internet viene que es así: lostFocus(java.awt.Event e, java.lang.Object o)
¿ Como hago para llamarla ?
¿ Cual es el evento y cual el objeto ?

Estoy usando componentes swing y este es él codigo del proceso:

void Textarray_focusLost(FocusEvent e) {
if (Textarray[elementoarray].getText().equals("")){
error = "Tienes que introducir una cantidad en ";
error = error + Boxarray[elementoarray].getText();
JOptionPane.showMessageDialog(null, error, "Fallo", JOptionPane.ERROR_MESSAGE);

}
else {
try {
String num = new String(Textarray[elementoarray].getText());
Integer aux = new Integer(num);
int numero = aux.intValue();
}
catch (NumberFormatException ex) {
error = "El valor introducido en ";
error = error + Boxarray[elementoarray].getText();
error = error + " no es numérico";
JOptionPane.showMessageDialog(null,error,"Fallo",JOptionPane.ERROR_MESSAGE);
}
}
}

LO quiero que haga es que cuando pierda el foco del textbox que compruebe su contenido y deje el foco en el textbox, no en el boton, array, ... que halla pulsado.

profesorchiflado
19 de Noviembre del 2003
Pues despues del cuadro de dialogo haz:
nombreText.requestFocus();
Saludos.