Я предполагаю, что вы разрабатываете приложение Swing.Прочитайте Javadoc класса SwingWorker: http://download.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html. Идея состоит в том, чтобы 1. отобразить заставку 2. запустить поток, который выполняет все ваши действия в фоновом режиме.3. когда фоновые операции завершены, скройте заставку
SwingWorker позаботится об этом.Однако обратите внимание, что фоновые операции могут не использовать какой-либо компонент или класс, относящиеся к Swing, поскольку они не являются поточно-ориентированными и должны выполняться в потоке диспетчеризации событий (EDT).
Другой, более простой подход заключается вотобразить заставку, а затем использовать SwingUtilities.invokeLater для выполнения ваших операций и скрыть заставку.Таким образом, все будет сделано на EDT, но заставка будет отображаться до выполнения других операций.Однако обратите внимание, что при использовании этого метода графический интерфейс приложения не будет отвечать до тех пор, пока заставка не будет скрыта.