import java.awt.BorderLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;
import javax.swing.JWindow;
import javax.swing.Timer;
/**
* Splash screen shown during program load.
* To use it, just use new Splash() early in program load.
*/
public class Splash extends JWindow
{
static final String SPLASH_IMAGE = "splash.png";
static final int SPLASH_TIME = 10000;
/**
* constructor
*/
Splash()
{
URL url = this.getClass().getResource( SPLASH_IMAGE );
Image image = Toolkit.getDefaultToolkit().getImage( url );
ImageViewer imageViewer = new ImageViewer( image );
this.getContentPane().add( imageViewer, BorderLayout.CENTER );
this.addMouseListener(new MouseAdapter()
{
public void mousePressed( MouseEvent e )
{
setVisible( false );
dispose();
}
});
this.pack();
this.setLocation( 150, 150 );
this.setVisible( true );
final ActionListener splashCloser = new ActionListener()
{
public void actionPerformed( ActionEvent evt )
{
setVisible( false );
dispose();
}
};
Timer splashTimer = new Timer( SPLASH_TIME, splashCloser );
splashTimer.setRepeats( false );
splashTimer.start();
}
}