Capturar nome do componente que ativou o evento focusLost

Pessoal,
Como eu faço para capturar/identificar um componente que tenha ativado o evento focusLost ou focusGained?

Na classe visão eu tenho esse método que define os listeners:

public void configuraOuvinte(ActionListener ouvinte, MouseListener ouvinteMouse, FocusListener ouvinteFoco) { jButtonAlterar.addActionListener(ouvinte); jButtonCancelar.addActionListener(ouvinte); jTableListagem.addMouseListener(ouvinteMouse); jTextFieldItem.addFocusListener(ouvinteFoco); }

Na classe controle, para os eventos de botão uso esse método com o qual consigo saber qual botão disparou o evento (Lembrando que a propriedade actionCommand dos botões foram setadas com o nome que está sendo pesquisado nesse método):

[code]public void actionPerformed(ActionEvent e)
{
String comando = e.getActionCommand();

if (comando.equalsIgnoreCase("Cancelar"))
{
    // O botão Cancelar foi clicado.
}

}[/code]

No focusLost não consigo utilizar o argumento “e” para capturar informações que ajudem a distinguir qual componente ativou…

public void focusLost(FocusEvent e) { displayMessage("Focus lost", e); }

Obrigado!

Nem com o método e.getSource()?

Nesse caso você pode testar a classe dele (getSource().getClass()) e o nome dele (getSource().getName()).

Vini, é mais ou menos por ai. Fiz umas pesquisas consegui descobrir que uma das maneiras de funcionar é assim:

[code]public void focusLost(FocusEvent e)
{
Object obj = e.getSource();

if (obj.equals(this.jTextFieldValor))
{
    \\ Realizar o cálculo aqui
}

}[/code]
Se comparar o e.getSource diretamente com o componente é possível verificar quem ativou o evento.

O problema é que esse exemplo funciona na classe Visao e estou querendo fazer esse cálculo na classe de Controle. Do Controle não tenho acesso ao componente jTextFieldValor a não ser por get e set.

Acredito que o ideal para o meu caso seria na classe Visao fazer algo do tipo:

e na classe controle:
String acao = e.getActionCommand() para saber qual foi o comando ativado, mas aparentemente isso não pode ser feito no FocusEvent.

Por hora vou deixar o cálculo na classe visão mesmo, mas se alguém tiver alguma ideia eu agradeço.

Abraço!