Use invokeLater instead