SplashScreen.java Source code

Java tutorial

Introduction

Here is the source code for SplashScreen.java

Source

//package com.towel.swing.splash;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JWindow;

public class SplashScreen extends JWindow {
    private JProgressBar bar;
    private JLabel label;

    public SplashScreen(final BufferedImage img) {
        JPanel panel = new JPanel() {
            public void paintComponent(Graphics g) {
                super.paintComponent(g);
                Graphics2D g2d = (Graphics2D) g.create();

                g2d.drawImage(img, 0, 0, img.getWidth(), img.getHeight(), SplashScreen.this);
            }
        };
        panel.setPreferredSize(new Dimension(img.getWidth(), img.getHeight()));

        Container content = getContentPane();
        content.setLayout(new BorderLayout());
        content.add(panel, BorderLayout.NORTH);
        content.add(label = new JLabel(), BorderLayout.CENTER);
        content.add(bar = new JProgressBar(), BorderLayout.SOUTH);
        pack();
        setLocationRelativeTo(null);
    }

    public void setMessage(String msg) {
        label.setText(msg);
        pack();
    }

    public void setProgress(int prog) {
        bar.setValue(prog);
    }

    public void setIndeterminateProgress(boolean value) {
        bar.setIndeterminate(value);
    }
}