<< Back to "Java splash screen with progress bar, part 2"
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.
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();
}
}
You can also download the SplashScreenMain.java source code.
Post new comment