WindowListener não funciona como esperado

Eu quero que minha GUI faça algumas verificações quando um JOptionPane aparecer. Como não consigo encontrar de outra maneira, é possível fazer isso toda vez que a janela do aplicativo perde o foco (apenas verifica uma string). Por essa razão, adicionei o seguinte código no meu JFrame:

<code>appFrame.addWindowListener(new WindowAdapter() {

            @Override
            public void windowLostFocus(WindowEvent e) {
                System.out.println("Focus Lost");

            }
            @Override
            public void windowClosing(WindowEvent e) {
                //some other stuff here that work
            }
});
</code>

O ouvinte de fechamento da janela funciona bem. Embora quando o JFrame não está focado, nada acontece. O "Focus Lost" não deveria ser impresso toda vez que eu mudasse do JFrame para outra janela? Além disso, esse método será acionado quando um JOptionPane for mostrado?

questionAnswers(3)

yourAnswerToTheQuestion