SplashScreen extends JWindow
//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);
}
}
Related examples in the same category