Другим способом может быть то, о чем вы уже подумали: отображать недокрашенный JFrame при запуске приложения, а не просто ждать несколько секунд (вы также можете сделать это, если хотите, чтобы пользователи читали некоторую информацию), просто сохраняйте инициализация приложения. Когда инициализация будет завершена, закройте «заставку» (недекорированный JFrame) и откройте реальное приложение JFrame.
Это позволит вам отображать динамическую информацию (например, индикатор выполнения, если позже вы захотите, текст и т. Д.). Если вам нужен только статический экран-заставка, обратитесь за советом к Эндрю и используйте встроенную функцию экрана-заставки.