elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema en formulario swing al manejar perdida de foco
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema en formulario swing al manejar perdida de foco  (Leído 2,511 veces)
alfrosende

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Problema en formulario swing al manejar perdida de foco
« en: 14 Abril 2015, 17:33 pm »

Hola a todos ... molesto nuevamente por el siguiente problema.
Tengo un JFrame con 4 textfield que representan 4 entidades (entre otros componentes). En dichas cajas de texto se ingresan las clave de cada entidad que verifican existencia contra sus respectivas tablas (no importa si es en BD o memoria o lo que sea). El tema es que en la perdida de foco de cada cajita yo hago la verificacion de existencia de lo ingresado y si no existe envio un JOptionPane avisando que el dato no existe, pero tengo dos problemas con el comportamiento de la perdida de foco que no he podido resolver:

1) Cuando cambio el foco mediante TAB y el dato no es valido, es como que antes de abrir el JOptionPane del error le da el foco al siguiente textfield entonces al querer mostrar el mensaje primero ejecuta el focus lost del que gano el foco (que como esta en blando tambien envia mensaje de error), al cerrar este mensaje ahi nuevamente me muestra otro mensaje de error ahora si con el que efectivamente perdio el foco en primera instancia.

2) Lo otro es al cerrar el formulario ... me pasa lo mismo, se ejecuta la perdida de foco del textfield donde esta el cursor entonces antes de cerrar el formulario me muestra el mensaje de error si no tiene un dato valido.

Espero no haber sido demasiado entreverado en la descripción del problema, desde ya muchas gracias al que pueda ayudarme a evitar esto que me pasa.

P.D.: Quise probar con un imput verifaier, pero chequea cada entrada desde e teclado por lo que no me deja escirbir nada


En línea

alfrosende

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Problema en formulario swing al manejar perdida de foco
« Respuesta #1 en: 14 Abril 2015, 17:59 pm »

Sobre el problema 2 encontre la forma ... en el lost focus ejecuto el codigo solo si el oposite component es distinto de null ... sigo sin poder resolver lo primero!!!!


En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Problema en formulario swing al manejar perdida de foco
« Respuesta #2 en: 14 Abril 2015, 18:27 pm »

Si pones código quizás haya más posibilidad de que te puedan ayudar.
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
alfrosende

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Problema en formulario swing al manejar perdida de foco
« Respuesta #3 en: 14 Abril 2015, 19:09 pm »

El codigo de dos de las cajas de texto es este:

Código:
private void txtDivisionIdFocusLost(java.awt.event.FocusEvent evt) {                                       
        if (evt.getOppositeComponent() != null) {
            String dsc = regarch("DEP", txtDivisionId.getText(), "DEP", "0001");
            if (dsc != null) {
                txtDivisionDsc.setText(dsc);
            } else {
                JOptionPane.showMessageDialog(null, "División inexistente", "Error", JOptionPane.ERROR_MESSAGE);
                txtDivisionId.setText("");
                txtDivisionDsc.setText("");
            }
        }
    }         
private void txtCecIdFocusLost(java.awt.event.FocusEvent evt) {                                   
        if (evt.getOppositeComponent() != null) {
            String dsc = regarch("CEC", txtCecId.getText(), "CEC", "0001");
            if (dsc != null) {
                txtCecDsc.setText(dsc);
            } else {
                JOptionPane.showMessageDialog(null, "Centro de costos inexistente", "Error", JOptionPane.ERROR_MESSAGE);
                txtCecId.setText("");
                txtCecDsc.setText("");
            }
        }
    }                     

Cuando pierde el foco la caja de texto de id de division y se para en la de id de cec, se ejecuta primero el mensaje de centro de costos inexistente, y al aceptar se ejecuta inmediatamente el de división inexistente.

Gracias
En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Problema en formulario swing al manejar perdida de foco
« Respuesta #4 en: 16 Abril 2015, 23:52 pm »

Me parece curioso que se ejecute un evento focusLost cuando un TextField gana el foco (focusGained). ¿Estás seguro que txtFocusLost se está llamando dentro de focusLost?
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines