<< Back to "Java splash screen with progress bar, part 2"
Closing/destroying the splash screen
When you finish "starting up" your application you'll want to remove the splash screen and replace it with your application windows, presumably a Java JFrame Because my SplashScreen class is a simple JWindow you can achieve this effect by making the window not visible, as I do in the splashScreenDestruct method shown below:
private void splashScreenDestruct() {
screen.setScreenVisible(false);
screen = null;
}
I also set the screen reference to null. This isn't required, but for the purposes of this article, I thought it might clarify my intent.
My Java splash screen "driver" class
That finishes my discussion of the "driver" class that I used to build and test my SplashScreen class. For completeness, here is a listing of the full source code of this class.
package com.devdaily.splashscreen;
import javax.swing.UIManager;
import javax.swing.ImageIcon;
public class SplashScreenMain {
SplashScreen screen;
public SplashScreenMain() {
// initialize the splash screen
splashScreenInit();
// do something here to simulate the program doing something that
// is time consuming
for (int i = 0; i <= 100; i++)
{
for (long j=0; j<50000; ++j)
{
String poop = " " + (j + i);
}
// run either of these two -- not both
screen.setProgress("Yo " + i, i); // progress bar with a message
//screen.setProgress(i); // progress bar with no message
}
splashScreenDestruct();
System.exit(0);
}
private void splashScreenDestruct() {
screen.setScreenVisible(false);
}
private void splashScreenInit() {
ImageIcon myImage = new ImageIcon(com.devdaily.splashscreen.SplashScreenMain.class.getResource("SplashImage.gif"));
screen = new SplashScreen(myImage);
screen.setLocationRelativeTo(null);
screen.setProgressMax(100);
screen.setScreenVisible(true);
}
public static void main(String[] args)
{
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e) {
e.printStackTrace();
}
new SplashScreenMain();
}
}
Java Splash Screen source code
You can also download the SplashScreenMain.java source code.

