Thiago,
N�o sei se ajuda mas enfrentei problema semelhante. N�o tenho certeza se
essa minha explica��o est� correta, mas com esse racioc�nio eu consegui
superar o problema.
O que ocorre � que vc est� fazendo o requestFocus no mesmo componente que
est� disparando o focusLost. Isso causa algum problema e o efeito que tinha
era como se n�o existisse mais foco em lugar algum. Ent�o o que fiz foi
criar os componentes personalizados extendendo dos originais (ex:
MeuInputField extends InputField) e sobrescrevia o m�todo que dispara a
perda de foco nos componentes (Component.processFocusEvent). Dessa forma,
primeiro eu validava o dado. Caso ele fosse v�lido eu permitiria disparar de
verdade o m�todo de mudan�a de foco da classe pai (super.processFocusEvent).
Caso contr�rio, o m�todo n�o fazia nada....
Algo mais ou menos assim:
class MeuInputField extends InputField
{
    public void processFocusEvent(FocusEvent e)
    {
        If (dados v�lidos)
            super.processFocusEvent(e);
    }
}
Espero que ajude!

-----Mensagem original-----
De: Thiago Carneiro [mailto:[EMAIL PROTECTED]]
Enviada em: quarta-feira, 9 de maio de 2001 16:00
Para: [EMAIL PROTECTED]
Assunto: [java-list] Problema de focus.


Caros colegas,
 
     Estou tratando um evento de perda de foco. Em um programa meu, quando
uma determinada caixa de texto perde o foco, o programa verifica se o
conte�do � v�lido ou n�o.
     Se n�o for v�lido, o programa deveria avisar atrav�s de uma caixa de
di�logo e logo depois retornar o foco para a caixa de texto.    
      No meu programa, a caixa de di�logo aparece advertendo que o conte�do
� inv�lido, por�m o foco permanece no outro componente embora o c�digo mande
que o foco deveria voltar � caixa de texto. Gostaria de saber qual � o
problema.
Algu�m poderia me ajudar?
       Eis um trecho do c�digo:
 
     void textField_focusLost(FocusEvent e) {
         if (!format.verificaFormato(textField.getText())) {
            dialogo.show;              // chama a caixa de di�logo
            if (dialog.isButtonClicked) {   // se o bot�o Ok for pressionado
               dialog.dispose();
               textField.selectAll();          // seleciona o conte�do
               textField.requestFocus();  // deveria voltar o foco para a
caixa de texto
            }
         }
    }

 
   Grato pela aten��o.
 
    Carlos.


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a