Non è strettamente necessario usare i thread in quanto lo splash screen non interferisce col programma in quanto è il programma stesso che lo visualizza, ne cambia ogni tanto una label e lo chiude, diciamo che non utilizzano concorrentemente la cpu...
- Visualizza splash (dopo la visualizzazione lo splash non fa nulla e non richiede la cpu)
- il programma parte e ad esempio carica le opzioni
- cambia una label sullo splash che dice : "loading options"
- il programma ha fatto tutto ed è pronto a visualizzare il JFrame principale
- cambia la label sullo splash che ora sarà : "all done now start"
- dispose() dello splash
- setVisible(true) del JFrame principale
Ovviamente si può fare anche con un thread.. ma anche senza insomma