Originariamente inviato da saverix80
Il problema è che il fuoco ritorna solo dopo 3 o + tentativi di kiusura della MessageDialog.
Come posso risolverlo?
Quello che stai cercando di fare è un "gioco" un po' delicato. Ma si può risolvere. Nel caso dell'errore (nel tuo caso dentro il catch) fai:

codice:
JOptionPane.showMessageDialog(TPIva, ".....messaggio.....");
        
SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        TPIva.requestFocusInWindow();
    }
});
P.S. Secondo la documentazione, è preferibile requestFocusInWindow piuttosto che grabFocus.

EDIT: corretto, perché basta anche solo come è adesso sopra.