| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2010 17:38:27
|
VantuilJose
JavaChild
![[Avatar]](/images/avatar/ca5b658462069fbcf6db37967b8c9cec.jpg)
Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline
|
Pessoal, preciso que, quando um componente vai perder o foco, caso ele não esteja validado, o foco volte pra ele, mas sem passar para o outro componente, entenderam?
É que o FocusGained do outro componente tem código que não deveria ser executado caso o primeiro campo não estivesse validado. Então não posso dar um simples requestFocus, alguém tem alguma idéia que possa me ajudar?
This message was edited 2 times. Last update was at 10/02/2010 09:03:18
|
Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!" |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2010 08:15:21
|
Marky.Vasconcelos
Moderador
![[Avatar]](/images/avatar/04940fadf3702cbd84b7a48161037c4f.png)
Membro desde: 11/04/2007 18:18:20
Mensagens: 5845
Localização: São Paulo/SP
Offline
|
|
Facebook @MarkyHitchhiker +Mark WP: MarkyTech's
Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais
DefaultTableModel?! PARE! Não faça isso! Faça melhor!
Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)
Develop games is fantastic, with words you can make worlds!!!
DON'T PANIC!
MarkyHitchhiker's Blog! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2010 08:56:58
|
VantuilJose
JavaChild
![[Avatar]](/images/avatar/ca5b658462069fbcf6db37967b8c9cec.jpg)
Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline
|
Mark_Ameba, a classe java.awt.event.FocusEvent não tem o método consume();
consume() é definido AWTEvent, mas o acesso à ela é protegido. O FocusEvent não permite que esse método seja invocado. Se eu fizer cast para o tipo AWTEvent isso funcionaria? ou o evento de foco não pode ser consumido?
|
Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2010 08:59:45
|
VantuilJose
JavaChild
![[Avatar]](/images/avatar/ca5b658462069fbcf6db37967b8c9cec.jpg)
Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline
|
O cast não funciona né! Mudar o tipo não resolve o problema...
Apenas classes do pacote podem acessá-lo, o que eu posso fazer existe uma alternativa pra isso?
|
Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2010 10:32:17
|
Marky.Vasconcelos
Moderador
![[Avatar]](/images/avatar/04940fadf3702cbd84b7a48161037c4f.png)
Membro desde: 11/04/2007 18:18:20
Mensagens: 5845
Localização: São Paulo/SP
Offline
|
Ahh.. nao tinha reparado nisso.
Voce pode acessar por Reflection mas acho inviavel.
Talvez voce pode pensar em outra solução.
|
Facebook @MarkyHitchhiker +Mark WP: MarkyTech's
Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais
DefaultTableModel?! PARE! Não faça isso! Faça melhor!
Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)
Develop games is fantastic, with words you can make worlds!!!
DON'T PANIC!
MarkyHitchhiker's Blog! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2010 11:03:52
|
lina
Moderador
![[Avatar]](/images/avatar/8849f0a976aa5332853e848655a1d28f.jpg)
Membro desde: 23/12/2006 21:05:04
Mensagens: 2927
Online
|
Oi,
Trambique:
Caso o componente não esteja validado, lancar uma exceção (criado por vc) do tipo: NoFocusChangeSignException que irá ser tratada para dar um requestFocus no componente atual de conteudo não valido.
No FocusGained do outro componente, verifique se ocorreu uma exceção anterior. Se sim, não faz nada. Se não, faz o que deveria ser feito.
Tchauzin!
|
Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui antes, por favor!
http://www.guj.com.br/posts/list/50115.java
Se o seu tópico foi respondido e você está satisfeito, segue:
- Pressione o botão <Edit> de seu primeiro post
- Acrescente no final do título a tag [RESOLVIDO]
@gujgirl
http://www.restartfans.hdfree.com.br
Meu blog:
http://www.runthecode.wordpress.com
Tchauzin! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2010 12:43:33
|
VantuilJose
JavaChild
![[Avatar]](/images/avatar/ca5b658462069fbcf6db37967b8c9cec.jpg)
Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline
|
Pois é lina, eu estava evitando os trambiques, heheheehe
Ainda mais esses que eu tenho que implementar no código no FocusGained..
É que eu tenho uma classe que faz essa validação baseada em código que eu passo pra ele o evento e uma condição pra que ele analise, com isso eu economizo muito código...
Esse trambique que você sugeriu é melhor do que alguns que eu tinha pensado... Se não houver outro jeito, fico com ele mesmo, heheheehe
This message was edited 1 time. Last update was at 10/02/2010 08:33:32
|
Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/02/2010 08:33:51
|
VantuilJose
JavaChild
![[Avatar]](/images/avatar/ca5b658462069fbcf6db37967b8c9cec.jpg)
Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline
|
O que a acontece é o seguinte, essa classe de validação tem um HashMap com Component e Mensagem(String), tenho um método verifica, onde eu passo a condição, o evento e a mensagem. Esse método é invocado quando o componente perde o foco.
Se a condição for verdadeira, significa que eu tenho um erro então adiciono o componente junto com a mensagem no HashMap. E volto o foco pro componente que gerou o evento.
O Problema: Se Se o próximo componente for um componente que também tem um verificaErro no focusLost, ele ganha o foco,e é invalidado (pinta a borda de vermelho e mostra uma mensagem em um label), então um campo que ainda nem recebeu dados é considerado como errado...
Não é um problema muito sério já que o usuário vai passar por lá novamente, mas não era exatamente isso que eu queria...
|
Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/02/2010 09:02:42
|
VantuilJose
JavaChild
![[Avatar]](/images/avatar/ca5b658462069fbcf6db37967b8c9cec.jpg)
Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline
|
Resolvi de outra maneira,
Realmente não consegue cancelar o evento, me parece que o consume() apenas pode ser utilizado em InputEvent, e ele consume o evento mesmo, tipo, se vc cancela um tipo de InputEvent, os ouvintes do seus InputEvent deixam de receber os evento, me corrijam se eu estiver errado.
Então inventei uma gambiarrazinha na minha classe, se interessar a alguém:
|
Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!" |
|
|
 |
|
|