001 /****************************************************************************** 002 * Copyright (C) MActor Developers. All rights reserved. * 003 * ---------------------------------------------------------------------------* 004 * This file is part of MActor. * 005 * * 006 * MActor is free software; you can redistribute it and/or modify * 007 * it under the terms of the GNU General Public License as published by * 008 * the Free Software Foundation; either version 2 of the License, or * 009 * (at your option) any later version. * 010 * * 011 * MActor is distributed in the hope that it will be useful, * 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 014 * GNU General Public License for more details. * 015 * * 016 * You should have received a copy of the GNU General Public License * 017 * along with MActor; if not, write to the Free Software * 018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * 019 ******************************************************************************/ 020 package org.mactor.ui.gui; 021 022 import java.awt.Dimension; 023 import java.awt.Frame; 024 import java.awt.Graphics; 025 import java.awt.Image; 026 import java.awt.MediaTracker; 027 import java.awt.Rectangle; 028 import java.awt.Toolkit; 029 import java.awt.Window; 030 import java.net.URL; 031 032 public class Splash extends Frame { 033 public Splash() { 034 MediaTracker mediaTracker = new MediaTracker(this); 035 URL imageURL = Thread.currentThread().getContextClassLoader().getResource("loading.PNG"); 036 Image fImage = Toolkit.getDefaultToolkit().getImage(imageURL); 037 setSize(fImage.getWidth(null), fImage.getHeight(null)); 038 Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); 039 Rectangle frame = getBounds(); 040 setLocation((screen.width - frame.width) / 2, (screen.height - frame.height) / 2); 041 mediaTracker.addImage(fImage, 0); 042 try { 043 mediaTracker.waitForID(0); 044 } catch (InterruptedException ie) { 045 System.out.println("Cannot track image load"); 046 } 047 SplashWindow splashWindow = new SplashWindow(this, fImage); 048 } 049 private class SplashWindow extends Window { 050 private Image fImage; 051 SplashWindow(Frame aParent, Image aImage) { 052 super(aParent); 053 fImage = aImage; 054 setSize(fImage.getWidth(null), fImage.getHeight(null)); 055 Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); 056 Rectangle window = getBounds(); 057 setLocation((screen.width - window.width) / 2, (screen.height - window.height) / 2); 058 setVisible(true); 059 } 060 public void paint(Graphics graphics) { 061 if (fImage != null) { 062 graphics.drawImage(fImage, 0, 0, this); 063 } 064 } 065 } 066 }