1 package fr.ove.openmath.mathematica;
2
3 import javax.swing.*;
4 import java.awt.*;
5 import java.awt.event.*;
6
7 /***
8 * A splash screen.
9 */
10 class SplashScreen extends JWindow {
11 public SplashScreen(String filename, Frame f, int waitTime) {
12 super(f);
13 JLabel l = new JLabel(new ImageIcon(filename));
14 getContentPane().add(l, BorderLayout.CENTER);
15 pack();
16 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
17 Dimension labelSize = l.getPreferredSize();
18 setLocation(screenSize.width/2 - (labelSize.width/2),
19 screenSize.height/2 - (labelSize.height/2));
20 addMouseListener(
21 new MouseAdapter() {
22 public void mousePressed(MouseEvent e)
23 {
24 setVisible(false);
25 dispose();
26 }
27 }
28 );
29
30 final Runnable closerRunner = new Runnable() {
31 public void run() {
32 setVisible(false);
33 dispose();
34 }
35 };
36
37 final int pause = waitTime;
38 Runnable waitRunner = new Runnable() {
39 public void run() {
40 try {
41 Thread.sleep(pause);
42 SwingUtilities.invokeAndWait(closerRunner);
43 }
44 catch(Exception e) {
45 e.printStackTrace();
46
47
48 }
49 }
50 };
51
52 setVisible(true);
53 Thread splashThread = new Thread(waitRunner, "SplashThread");
54 splashThread.start();
55 }
56 }