<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSwing_JFC%2FSplash_Screen</id>
		<title>Java/Swing JFC/Splash Screen - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSwing_JFC%2FSplash_Screen"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/Splash_Screen&amp;action=history"/>
		<updated>2026-04-21T14:38:56Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Swing_JFC/Splash_Screen&amp;diff=7407&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/Splash_Screen&amp;diff=7407&amp;oldid=prev"/>
				<updated>2010-06-01T06:44:05Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:44, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Swing_JFC/Splash_Screen&amp;diff=7406&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/Splash_Screen&amp;diff=7406&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== A progress bar indicating the progress of application initialization ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.SplashScreen;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String args[]) throws Exception{&lt;br /&gt;
    SplashScreen splash = SplashScreen.getSplashScreen();&lt;br /&gt;
    Graphics2D g = (Graphics2D) splash.createGraphics();&lt;br /&gt;
    Dimension dim = splash.getSize();&lt;br /&gt;
    for (int i = 0; i &amp;lt; 100; i++) {&lt;br /&gt;
      g.setColor(Color.RED);&lt;br /&gt;
      g.fillRect(50, 50, dim.width - 100, dim.height - 100);&lt;br /&gt;
      splash.update();&lt;br /&gt;
      try {&lt;br /&gt;
        Thread.sleep(250);&lt;br /&gt;
      } catch (InterruptedException ignored) {&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Splash Me2&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JLabel label = new JLabel(&amp;quot;Hello, Splash&amp;quot;, JLabel.CENTER);&lt;br /&gt;
    frame.add(label, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(300, 95);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A simple application to show a title screen in the center of the screen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
Java Swing, 2nd Edition&lt;br /&gt;
By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole&lt;br /&gt;
ISBN: 0-596-00408-7&lt;br /&gt;
Publisher: O&amp;quot;Reilly &lt;br /&gt;
*/&lt;br /&gt;
// SplashScreen.java&lt;br /&gt;
//A simple application to show a title screen in the center of the screen&lt;br /&gt;
//for the amount of time given in the constructor. This class includes&lt;br /&gt;
//a sample main() method to test the splash screen, but it&amp;quot;s meant for use&lt;br /&gt;
//with other applications.&lt;br /&gt;
//&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import javax.swing.BorderFactory;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JWindow;&lt;br /&gt;
public class SplashScreen extends JWindow {&lt;br /&gt;
  private int duration;&lt;br /&gt;
  public SplashScreen(int d) {&lt;br /&gt;
    duration = d;&lt;br /&gt;
  }&lt;br /&gt;
  // A simple little method to show a title screen in the center&lt;br /&gt;
  // of the screen for the amount of time given in the constructor&lt;br /&gt;
  public void showSplash() {&lt;br /&gt;
    JPanel content = (JPanel) getContentPane();&lt;br /&gt;
    content.setBackground(Color.white);&lt;br /&gt;
    // Set the window&amp;quot;s bounds, centering the window&lt;br /&gt;
    int width = 450;&lt;br /&gt;
    int height = 115;&lt;br /&gt;
    Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();&lt;br /&gt;
    int x = (screen.width - width) / 2;&lt;br /&gt;
    int y = (screen.height - height) / 2;&lt;br /&gt;
    setBounds(x, y, width, height);&lt;br /&gt;
    // Build the splash screen&lt;br /&gt;
    JLabel label = new JLabel(new ImageIcon(&amp;quot;1.gif&amp;quot;));&lt;br /&gt;
    JLabel copyrt = new JLabel(&amp;quot;Copyright 2002, O&amp;quot;Reilly &amp;amp; Associates&amp;quot;,&lt;br /&gt;
        JLabel.CENTER);&lt;br /&gt;
    copyrt.setFont(new Font(&amp;quot;Sans-Serif&amp;quot;, Font.BOLD, 12));&lt;br /&gt;
    content.add(label, BorderLayout.CENTER);&lt;br /&gt;
    content.add(copyrt, BorderLayout.SOUTH);&lt;br /&gt;
    Color oraRed = new Color(156, 20, 20, 255);&lt;br /&gt;
    content.setBorder(BorderFactory.createLineBorder(oraRed, 10));&lt;br /&gt;
    // Display it&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
    // Wait a little while, maybe while loading resources&lt;br /&gt;
    try {&lt;br /&gt;
      Thread.sleep(duration);&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
    }&lt;br /&gt;
    setVisible(false);&lt;br /&gt;
  }&lt;br /&gt;
  public void showSplashAndExit() {&lt;br /&gt;
    showSplash();&lt;br /&gt;
    System.exit(0);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    // Throw a nice little title page up on the screen first&lt;br /&gt;
    SplashScreen splash = new SplashScreen(10000);&lt;br /&gt;
    // Normally, we&amp;quot;d call splash.showSplash() and get on with the program.&lt;br /&gt;
    // But, since this is only a test...&lt;br /&gt;
    splash.showSplashAndExit();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A simple Splash screen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) Ian F. Darwin, http://www.darwinsys.ru/, 1996-2002.&lt;br /&gt;
 * All rights reserved. Software written by Ian F. Darwin and others.&lt;br /&gt;
 * $Id: LICENSE,v 1.8 2004/02/09 03:33:38 ian Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 * 1. Redistributions of source code must retain the above copyright&lt;br /&gt;
 *    notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 * 2. Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *    notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *    documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS&amp;quot;&amp;quot;&lt;br /&gt;
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED&lt;br /&gt;
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS&lt;br /&gt;
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR&lt;br /&gt;
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF&lt;br /&gt;
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS&lt;br /&gt;
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN&lt;br /&gt;
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)&lt;br /&gt;
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE&lt;br /&gt;
 * POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 * &lt;br /&gt;
 * Java, the Duke mascot, and all variants of Sun&amp;quot;s Java &amp;quot;steaming coffee&lt;br /&gt;
 * cup&amp;quot; logo are trademarks of Sun Microsystems. Sun&amp;quot;s, and James Gosling&amp;quot;s,&lt;br /&gt;
 * pioneering role in inventing and promulgating (and standardizing) the Java &lt;br /&gt;
 * language and environment is gratefully acknowledged.&lt;br /&gt;
 * &lt;br /&gt;
 * The pioneering role of Dennis Ritchie and Bjarne Stroustrup, of AT&amp;amp;T, for&lt;br /&gt;
 * inventing predecessor languages C and C++ is also gratefully acknowledged.&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.*;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.MediaTracker;&lt;br /&gt;
import java.awt.event.KeyAdapter;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JOptionPane;&lt;br /&gt;
import javax.swing.JWindow;&lt;br /&gt;
/** A simple Splash screen. */&lt;br /&gt;
public class Splash extends JWindow {&lt;br /&gt;
  protected ImageIcon im;&lt;br /&gt;
  public Splash(JFrame f, String progName, String fileName) {&lt;br /&gt;
    super();&lt;br /&gt;
    // Can&amp;quot;t use Swing border on JWindow: not a JComponent.&lt;br /&gt;
    // setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));&lt;br /&gt;
    im = new ImageIcon(fileName);&lt;br /&gt;
    if (im.getImageLoadStatus() != MediaTracker.ruPLETE)&lt;br /&gt;
      JOptionPane.showMessageDialog(f,&lt;br /&gt;
        &amp;quot;Warning: can&amp;quot;t load image &amp;quot; + fileName + &amp;quot;\n&amp;quot; +&lt;br /&gt;
        &amp;quot;Please be sure you have installed &amp;quot; + progName + &amp;quot; correctly&amp;quot;,&lt;br /&gt;
        &amp;quot;Warning&amp;quot;,&lt;br /&gt;
        JOptionPane.WARNING_MESSAGE);&lt;br /&gt;
    int w = im.getIconWidth(), h = im.getIconHeight();&lt;br /&gt;
    setSize(w, h);&lt;br /&gt;
    UtilGUI.center(this);&lt;br /&gt;
    addMouseListener(new MouseAdapter() {&lt;br /&gt;
      public void mouseClicked(MouseEvent e) {&lt;br /&gt;
        dispose();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    addKeyListener(new KeyAdapter() {&lt;br /&gt;
      public void keyTyped(KeyEvent e) {&lt;br /&gt;
        dispose();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
  public void paint(Graphics g) {&lt;br /&gt;
    im.paintIcon(this, g, 0, 0);&lt;br /&gt;
    g.setColor(Color.green);&lt;br /&gt;
    g.drawRoundRect(0, 0, getWidth()-1, getHeight()-1, 7, 7);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class UtilGUI {&lt;br /&gt;
  /** Centre a Window, Frame, JFrame, Dialog, etc. */&lt;br /&gt;
  public static void centre(Window w) {&lt;br /&gt;
    // After packing a Frame or Dialog, centre it on the screen.&lt;br /&gt;
    Dimension us = w.getSize(), them = Toolkit.getDefaultToolkit()&lt;br /&gt;
        .getScreenSize();&lt;br /&gt;
    int newX = (them.width - us.width) / 2;&lt;br /&gt;
    int newY = (them.height - us.height) / 2;&lt;br /&gt;
    w.setLocation(newX, newY);&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Center a Window, Frame, JFrame, Dialog, etc., but do it the American&lt;br /&gt;
   * Spelling Way :-)&lt;br /&gt;
   */&lt;br /&gt;
  public static void center(Window w) {&lt;br /&gt;
    UtilGUI.centre(w);&lt;br /&gt;
  }&lt;br /&gt;
  /** Maximize a window, the hard way. */&lt;br /&gt;
  public static void maximize(Window w) {&lt;br /&gt;
    Dimension us = w.getSize(), them = Toolkit.getDefaultToolkit()&lt;br /&gt;
        .getScreenSize();&lt;br /&gt;
    w.setBounds(0, 0, them.width, them.height);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A splash screen for an application ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import javax.swing.BorderFactory;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JWindow;&lt;br /&gt;
class SplashScreen extends JWindow {&lt;br /&gt;
  private int duration;&lt;br /&gt;
  public SplashScreen(int d) {&lt;br /&gt;
    duration = d;&lt;br /&gt;
    JPanel content = (JPanel) getContentPane();&lt;br /&gt;
    content.setBackground(Color.white);&lt;br /&gt;
    int width = 450;&lt;br /&gt;
    int height = 115;&lt;br /&gt;
    Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();&lt;br /&gt;
    int x = (screen.width - width) / 2;&lt;br /&gt;
    int y = (screen.height - height) / 2;&lt;br /&gt;
    setBounds(x, y, width, height);&lt;br /&gt;
    content.add(new JLabel(&amp;quot;asdf&amp;quot;), BorderLayout.CENTER);&lt;br /&gt;
    Color oraRed = new Color(156, 20, 20, 255);&lt;br /&gt;
    content.setBorder(BorderFactory.createLineBorder(oraRed, 10));&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
    try {&lt;br /&gt;
      Thread.sleep(duration);&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
    }&lt;br /&gt;
    setVisible(false);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    SplashScreen splash = new SplashScreen(10000);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Class representing an application splash screen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
/*&lt;br /&gt;
 * (C) 2004 - Geotechnical Software Services&lt;br /&gt;
 * &lt;br /&gt;
 * This code is free software; you can redistribute it and/or&lt;br /&gt;
 * modify it under the terms of the GNU Lesser General Public &lt;br /&gt;
 * License as published by the Free Software Foundation; either &lt;br /&gt;
 * version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This code is distributed in the hope that it will be useful,&lt;br /&gt;
 * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&lt;br /&gt;
 * GNU Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public &lt;br /&gt;
 * License along with this program; if not, write to the Free &lt;br /&gt;
 * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, &lt;br /&gt;
 * MA  02111-1307, USA.&lt;br /&gt;
 */&lt;br /&gt;
//package no.geosoft.cc.ui;&lt;br /&gt;
&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
import java.awt.*;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import javax.swing.Timer;&lt;br /&gt;
import javax.swing.JWindow;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Class representing an application splash screen.&lt;br /&gt;
 * &amp;lt;p&amp;gt;&lt;br /&gt;
 * Typical usage:&lt;br /&gt;
 * &amp;lt;pre&amp;gt;&lt;br /&gt;
 *   SplashScreen splashScreen = new SplashScreen (&amp;quot;/com/company/splash.jpg&amp;quot;);&lt;br /&gt;
 *   splashScreen.open (3000);&lt;br /&gt;
 * &amp;lt;/pre&amp;gt;&lt;br /&gt;
 * &lt;br /&gt;
 * @author &lt;br /&gt;
 */   &lt;br /&gt;
public class SplashScreen extends JWindow&lt;br /&gt;
{&lt;br /&gt;
  private Image  image_;&lt;br /&gt;
  private int    x_, y_, width_, height_;&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Create a new splash screen object of the specified image.&lt;br /&gt;
   * The image file is located and referred to through the deployment, not&lt;br /&gt;
   * the local file system; A typical value might be &amp;quot;/com/company/splash.jpg&amp;quot;.&lt;br /&gt;
   * &lt;br /&gt;
   * @param imageFileName  Name of image file resource to act as splash screen.&lt;br /&gt;
   */&lt;br /&gt;
  public SplashScreen (String imageFileName)&lt;br /&gt;
  {&lt;br /&gt;
    super (new Frame());&lt;br /&gt;
    try {&lt;br /&gt;
      Toolkit toolkit = Toolkit.getDefaultToolkit();&lt;br /&gt;
      &lt;br /&gt;
      URL imageUrl = getClass().getResource (imageFileName);&lt;br /&gt;
      image_ = toolkit.getImage (imageUrl);&lt;br /&gt;
      MediaTracker mediaTracker = new MediaTracker (this);&lt;br /&gt;
      mediaTracker.addImage (image_, 0);&lt;br /&gt;
      mediaTracker.waitForID (0);&lt;br /&gt;
      width_  = image_.getWidth (this);&lt;br /&gt;
      height_ = image_.getHeight (this);&lt;br /&gt;
      Dimension screenSize = toolkit.getScreenSize();&lt;br /&gt;
      &lt;br /&gt;
      x_ = (screenSize.width  - width_)  / 2;&lt;br /&gt;
      y_ = (screenSize.height - height_) / 2;&lt;br /&gt;
    }&lt;br /&gt;
    catch (Exception exception) {&lt;br /&gt;
      exception.printStackTrace();&lt;br /&gt;
      image_ = null;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  /**&lt;br /&gt;
   * Open the splash screen and keep it open for the specified duration&lt;br /&gt;
   * or until close() is called explicitly.&lt;br /&gt;
   */&lt;br /&gt;
  public void open (int nMilliseconds)&lt;br /&gt;
  {&lt;br /&gt;
    if (image_ == null) return;&lt;br /&gt;
    &lt;br /&gt;
    Timer timer = new Timer (Integer.MAX_VALUE, new ActionListener() {&lt;br /&gt;
        public void actionPerformed (ActionEvent event) {&lt;br /&gt;
          ((Timer) event.getSource()).stop();&lt;br /&gt;
          close();&lt;br /&gt;
        };&lt;br /&gt;
      });&lt;br /&gt;
    &lt;br /&gt;
    timer.setInitialDelay (nMilliseconds);&lt;br /&gt;
    timer.start();&lt;br /&gt;
    setBounds (x_, y_, width_, height_);&lt;br /&gt;
    setVisible (true);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Close the splash screen.&lt;br /&gt;
   */&lt;br /&gt;
  public void close()&lt;br /&gt;
  {&lt;br /&gt;
    setVisible (false);&lt;br /&gt;
    dispose();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  /**&lt;br /&gt;
   * Paint the splash screen window.&lt;br /&gt;
   * &lt;br /&gt;
   * @param graphics  The graphics instance.&lt;br /&gt;
   */&lt;br /&gt;
  public void paint (Graphics graphics) &lt;br /&gt;
  {&lt;br /&gt;
    System.out.println (&amp;quot;paint&amp;quot;);&lt;br /&gt;
    if (image_ == null) return;&lt;br /&gt;
    graphics.drawImage (image_, 0, 0, width_, height_, this);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JSplash extends JWindow ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (C) 2004 Giuseppe MANNA&lt;br /&gt;
 * &lt;br /&gt;
 * This file is part of FreeReportBuilder&lt;br /&gt;
 * &lt;br /&gt;
 * FreeReportBuilder is free software; you can redistribute it and/or&lt;br /&gt;
 * modify it under the terms of the GNU General Public License&lt;br /&gt;
 * as published by the Free Software Foundation; either version 2&lt;br /&gt;
 * of the License, or (at your option) any later version.&lt;br /&gt;
 * &lt;br /&gt;
 * This program is distributed in the hope that it will be useful,&lt;br /&gt;
 * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 * GNU General Public License for more details.&lt;br /&gt;
 * &lt;br /&gt;
 * You should have received a copy of the GNU General Public License&lt;br /&gt;
 * along with this program; if not, write to the Free Software&lt;br /&gt;
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
import java.awt.*;&lt;br /&gt;
import javax.swing.border.*;&lt;br /&gt;
import javax.swing.*;&lt;br /&gt;
public final class JSplash extends JWindow&lt;br /&gt;
{&lt;br /&gt;
   private JLabel lblVersion = new JLabel();&lt;br /&gt;
   public JSplash()&lt;br /&gt;
   {&lt;br /&gt;
      init();&lt;br /&gt;
      center();&lt;br /&gt;
   }&lt;br /&gt;
   private void init()&lt;br /&gt;
   {&lt;br /&gt;
      JPanel    pnlImage   = new JPanel();&lt;br /&gt;
      ImageIcon image   = new ImageIcon( getClass().getResource( &amp;quot;img/logo.jpg&amp;quot; ) );&lt;br /&gt;
      JLabel    lblBack = new JLabel( image );&lt;br /&gt;
      Border    raisedbevel  = BorderFactory.createRaisedBevelBorder();&lt;br /&gt;
      Border    loweredbevel = BorderFactory.createLoweredBevelBorder();&lt;br /&gt;
      lblBack.setBounds( 0, 0, image.getIconWidth(), image.getIconHeight() );&lt;br /&gt;
      getLayeredPane().add( lblBack, new Integer( Integer.MIN_VALUE ) );&lt;br /&gt;
      pnlImage.setLayout( null );&lt;br /&gt;
      pnlImage.setOpaque( false );&lt;br /&gt;
      pnlImage.setBorder( BorderFactory.createCompoundBorder( raisedbevel, loweredbevel ) );&lt;br /&gt;
      pnlImage.add( this.lblVersion );&lt;br /&gt;
      this.lblVersion.setForeground( Color.white );&lt;br /&gt;
      this.lblVersion.setFont( new Font( &amp;quot;Dialog&amp;quot;, Font.PLAIN, 12 ) );&lt;br /&gt;
      this.lblVersion.setBounds( 15, 69, 120, 20 );&lt;br /&gt;
      setContentPane( pnlImage );&lt;br /&gt;
      setSize( image.getIconWidth(), image.getIconHeight() );&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   private void center()&lt;br /&gt;
   {&lt;br /&gt;
      Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();&lt;br /&gt;
      int       nX  = (int) (scr.getWidth()  - getWidth()  ) / 2;&lt;br /&gt;
      int       nY  = (int) (scr.getHeight() - getHeight() ) / 2;&lt;br /&gt;
      setLocation( nX, nY );&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Simple splash screen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JWindow;&lt;br /&gt;
import javax.swing.SwingConstants;&lt;br /&gt;
public class SimpleSplashScreen {&lt;br /&gt;
  public static void main(String[] arg) {&lt;br /&gt;
    JWindow jwin = new JWindow();&lt;br /&gt;
    jwin.getContentPane()&lt;br /&gt;
        .add(&lt;br /&gt;
            new JLabel(&amp;quot;Loading ZIP/JAR Manager...&amp;quot;,&lt;br /&gt;
                SwingConstants.CENTER));&lt;br /&gt;
    jwin.setBounds(200, 200, 200, 100);&lt;br /&gt;
    jwin.setVisible(true);&lt;br /&gt;
    try {&lt;br /&gt;
      Thread.sleep(1000);&lt;br /&gt;
    } catch (InterruptedException e) {&lt;br /&gt;
      e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
    jwin.setVisible(false);&lt;br /&gt;
    jwin.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Splash Screen based on JWindow ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
//&lt;br /&gt;
//   SplashScreen&lt;br /&gt;
//&lt;br /&gt;
//   Copyright (C) by Andrea Carboni.&lt;br /&gt;
//   This file may be distributed under the terms of the LGPL license.&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JWindow;&lt;br /&gt;
//&lt;br /&gt;
public class SplashScreen extends JWindow&lt;br /&gt;
{&lt;br /&gt;
  //---------------------------------------------------------------------------&lt;br /&gt;
  public SplashScreen(String image)&lt;br /&gt;
  {&lt;br /&gt;
    JLabel lbl = new JLabel(new ImageIcon(image));&lt;br /&gt;
    getContentPane().add(lbl, BorderLayout.CENTER);&lt;br /&gt;
    pack();&lt;br /&gt;
    setLocationRelativeTo(null);&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
//&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>