Usalo. L'argomento di invokeLater e' il thread stesso (o meglio qualsiasi oggetto implementi l'interfaccia Runnable)
In pratica il run() viene eseguito nel contesto del "dispatch event thread", che e' l'unico thread designato a "toccare" i componenti Swing.