SplashScreen Umsetzung

zer0

Erfahrenes Mitglied
Hallo,

ich wollte ein SplashScreen für mein Programm haben. Nachdem ich mir dieses Thema hier durchgelese habe ich mir ein eigenen SplashScreen gemacht. Funktioniert soweit gut! Was ich gern noch haben würde, ist das in der Taskleiste kein Task für den SplashScreen erscheint, sondern erst dann wenn der SplashScreen verschwindet und die Anwendung startet!

Mein Code sieht so aus:

Java:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class SplashScreen extends JFrame {

	private static final long serialVersionUID = 1L;
	
	private Image image;

	public static void main(String[] args) {
		SplashScreen splash = new SplashScreen("splash.gif");
		splash.display(3000);
	}
	
	public SplashScreen(String src) {
		super();
		image = new ImageIcon(src).getImage();		
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		int x = (d.width - image.getWidth(null)) / 2;
		int y = (d.height - image.getHeight(null)) / 2;
		setLocation(x, y);
		setSize(image.getWidth(null), image.getHeight(null));
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setUndecorated(true);
		setAlwaysOnTop(true);
	}
	
	public void display(long sleep) {
		setVisible(true);
		try {
			Thread.sleep(sleep);
		} catch (InterruptedException e) {
			this.dispose();
		}
		this.dispose();	
	}
	
	public void paint(Graphics g) {
		super.paint(g);
		g.drawImage(image, 0, 0, this);
	}
}

Das was in der main-Methode steht, wird von der anderen Anwendung aufgerufen. Ich will solange ein SplashScreen da ist, das in der Taskleiste kein Task angezeigt wird. Ausserdem wollte ich mal wissen, ist es Sinnvoll ind er display-Methode nach dispose(); noch System.exit(); aufzurufen oder langt das dispose()?

Gruß :)
 
Seit Java 6 gibt's eine fertige Klasse für Splashscreens, siehe hier.

dispose schließt das Fenster, System.exit beendet Dein Programm. Kommt also drauf an, was Du machen möchtest ;)
 
Zurück