| class SplashWindow3 extends JWindow { public SplashWindow3(String filename, Frame f, int waitTime) { super(f); JLabel l = new JLabel(new ImageIcon(filename)); getContentPane().add(l, BorderLayout.CENTER); pack(); Dimension screenSize =Toolkit.getDefaultToolkit().getScreenSize(); Dimension labelSize = l.getPreferredSize(); setLocation(screenSize.width/2 - (labelSize.width/2), screenSize.height/2 - (labelSize.height/2)); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { setVisible(false); dispose(); } }); final int pause = waitTime; final Runnable closerRunner = new Runnable() { public void run() { setVisible(false); dispose(); } }; Runnable waitRunner = new Runnable() { public void run() { try { Thread.sleep(pause); SwingUtilities.invokeAndWait(closerRunner); } catch(Exception e) { e.printStackTrace(); // 能夠捕獲InvocationTargetException // 能夠捕獲InterruptedException } } }; setVisible(true); Thread splashThread = new Thread(waitRunner, "SplashThread"); splashThread.start(); } } |
聯(lián)系客服