WindowListener no funciona como se esperaba

Quiero que mi GUI haga algunas comprobaciones cuando aparezca un JOptionPane. Debido a que no puedo encontrar otra manera, pensé que puedo hacerlo cada vez que la ventana de la aplicación pierde el foco (solo está comprobando una cadena). Por esa razón agregué el siguiente código en mi JFrame:

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
            }
});

El oyente de cierre de ventana funciona bien. Aunque cuando el JFrame no está enfocado no pasa nada. ¿No debería imprimirse "Focus Lost" cada vez que cambio de JFrame a otra ventana? Además, ¿se activará este método cuando se muestre un JOptionPane?