L'esecuzione del metodo avviene all'interno del thread di gestione degli eventi; quando chiami repaint lui accoda la richiesta in fondo al thread, per questo la esegue solo alla fine del metodo. Il JOptionPane attende l'input dell'utente e quindi lascia libera la coda per eseguire il repaint. L'unico modo che hai per fare quello che vuoi è studiarti i Thread di Java e forse lo SwingWorker. Se sei al completo digiuno di questi, è meglio che prima trovi un testo per studiarteli od a vedere le linee di codice non ci capiresti un tubo e basta...
Ciao![]()