Problema con los focus en Java
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.
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.