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]
-------------------------------------------------------------------------