focusLost chamado milhores de vezes !!!  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
chun
GUJ Master
[Avatar]
Membro desde: 08/11/2004 15:43:41
Mensagens: 1699
Localização: Curitiba/PR
Offline

Fiz uma aplicação de teste para verificar um possivel Bug do Swing...

O evento FocusLost é chamado muitas vezes caso voce adicione um JOptionPane em alguma validação dentro do listner...

O Codigo esta abaixo... estarei eu fazendo algo de errado ?


DETALHE IMPORTANTE... no linux funciona ... soh chama uma vez... no Windows... chama umas 4 vezes se vc apetar no "NO" do JOptionPane


Any help ?


Ps: Este post é uma opinião pessoal e NÃO DEVE SER ENCARADO COMO VERDADE ABSOLUTA... então... caso você não concorde... não precisa cortar os pulsos...

------
Controverso Eu ? http://www.go-java.com/blog
[WWW] [ICQ]
LuizClaudio
JavaEvangelist
[Avatar]

Membro desde: 03/04/2006 21:50:51
Mensagens: 388
Offline

Separa as coisas...cria uma classe só para ouvir...num curto muito o jeito do netbeans fazer essas coisas...quando vc executa ele lança alguma exception...

"Porque Deus amou o mundo de tal maneira que deu seu filho unigênito para que todo aquele que nele crê não pereça, mas tenha vida eterna." João 3.16
[WWW]
chun
GUJ Master
[Avatar]
Membro desde: 08/11/2004 15:43:41
Mensagens: 1699
Localização: Curitiba/PR
Offline

LuizClaudio wrote:Separa as coisas...cria uma classe só para ouvir...num curto muito o jeito do netbeans fazer essas coisas...quando vc executa ele lança alguma exception...


Isso é só um teste... está separado no projeto principal... isso eh apenas um teste do (possivel) Bug...

Pega isso ae e roda no teu IDE que vai rodar na boa...

Ps: Este post é uma opinião pessoal e NÃO DEVE SER ENCARADO COMO VERDADE ABSOLUTA... então... caso você não concorde... não precisa cortar os pulsos...

------
Controverso Eu ? http://www.go-java.com/blog
[WWW] [ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Você quer fazer uma validação de campo usando o evento focusLost?
a) focusLost é chamado também quando se minimiza o frame, e em outras situações. Portanto é um evento um pouco "ruim". No caso do SWT é até um pouco pior.

b) Veja um exemplo onde o cara evita o problema usando uma mensagem em posição fixa da tela, em vez de usar um MessageBox.

http://www.java2s.com/Code/Java/Swing-Components/ValidatingOnFocusLostExample.htm
[WWW]
chun
GUJ Master
[Avatar]
Membro desde: 08/11/2004 15:43:41
Mensagens: 1699
Localização: Curitiba/PR
Offline

thingol wrote:Você quer fazer uma validação de campo usando o evento focusLost?
a) focusLost é chamado também quando se minimiza o frame, e em outras situações. Portanto é um evento um pouco "ruim". No caso do SWT é até um pouco pior.

b) Veja um exemplo onde o cara evita o problema usando uma mensagem em posição fixa da tela, em vez de usar um MessageBox.

http://www.java2s.com/Code/Java/Swing-Components/ValidatingOnFocusLostExample.htm



Preciso validar quando o cara sai do campo... nao tem outra forma se nao pelo focusLost...


No exemplo que voce passou o cara tah usando o framework de validação do jGoodies... e ele nao apresenta um JOptionPane pro cara... se eu tirar o JOptionPane tudo funciona numa boa...
[WWW] [ICQ]
Sami Koivu
Virtual Machine Man
[Avatar]

Membro desde: 16/09/2004 09:49:27
Mensagens: 574
Localização: Curitiba-PR
Offline

Talvez no seu caso daria para usar InputVerifier em vez de FocusListener. Não sei se ele também está com os mesmos problemas citados pelo thingol.

Tem um exemplo aqui:
http://www.guj.com.br/posts/list/10483.java#154588

(Slightly) Random Broken Thoughts on Java Security
[Email] [WWW] [Yahoo!] [MSN]
chun
GUJ Master
[Avatar]
Membro desde: 08/11/2004 15:43:41
Mensagens: 1699
Localização: Curitiba/PR
Offline

Sami Koivu wrote:Talvez no seu caso daria para usar InputVerifier em vez de FocusListener. Não sei se ele também está com os mesmos problemas citados pelo thingol.

Tem um exemplo aqui:
http://www.guj.com.br/posts/list/10483.java#154588



O problema do inputVerifier eh que se o usuario apertar o botao de "cancelar" da tela de cadastro mesmo assim ele vai chamar esse "evento" , coisa que no focusLost eu consigo detectar se o proximo componente a receber o foco é um BOTAO dae eu nao apresento a janela... saka ?

Ps: Este post é uma opinião pessoal e NÃO DEVE SER ENCARADO COMO VERDADE ABSOLUTA... então... caso você não concorde... não precisa cortar os pulsos...

------
Controverso Eu ? http://www.go-java.com/blog
[WWW] [ICQ]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team