se usi swing tu non fai altro che istanziare componenti con determinati parametri, per loro il setVisible significa solo "renditi visibile o no", ma lavorano su componenti già ISTANZIATI e funzionanti.
Il motore interno (non tu) chiama una paint che disegna il componente con le caratteristiche da te volute.
Dal tuo punto di vista (user) setVisible e paint non sono collegati.
Se poi devi creare componenti, non c'è una connessione diretta (a meno che non scrivi i manager UI).