import javax.swing.JLabel; import javax.swing.ImageIcon; import javax.swing.JPanel; import java.awt.Dimension; import java.awt.BorderLayout; import java.awt.Window; import java.awt.Frame; import java.awt.Color; import java.awt.Toolkit; /** * Splash Screen loads up for this program. Before the program runs a screen * with an image pops up for a second, then it loads the rest of the program. **/ public class SplashScreen extends Window { JLabel lblStatus = new JLabel("LOADING JPaint is opening..."); /** * Creates a default constructor. Creates a new frame and adds the * background image onto it. **/ public SplashScreen(String strImageFileName) { super(new Frame()); ImageIcon imageScreen = new ImageIcon(strImageFileName); JLabel lblImage = new JLabel(imageScreen); lblStatus.setBackground(Color.black); lblStatus.setForeground(Color.white); JPanel pnlIm = new JPanel(new BorderLayout()); pnlIm.add(lblImage, BorderLayout.CENTER); pnlIm.add(lblStatus, BorderLayout.SOUTH); pnlIm.setBackground(Color.black); add(pnlIm); pack(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension windowSize = getSize(); this.setBounds((screenSize.width - windowSize.width)/2, (screenSize.height - windowSize.height)/2, windowSize.width, windowSize.height); setVisible(true); } /** Updates the status bar with the new string. **/ public void updateStatus(String temp) { lblStatus.setText(temp); setVisible(true); } /** Closes the splash screen. **/ public void closeWindow() { dispose(); } }