<?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_Tutorial%2FSwing%2FSplash_Screen</id>
		<title>Java Tutorial/Swing/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_Tutorial%2FSwing%2FSplash_Screen"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/Splash_Screen&amp;action=history"/>
		<updated>2026-04-21T23:04:59Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/Splash_Screen&amp;diff=3907&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/Splash_Screen&amp;diff=3907&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&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;Версия 17:44, 31 мая 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>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/Splash_Screen&amp;diff=3908&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/Splash_Screen&amp;diff=3908&amp;oldid=prev"/>
				<updated>2010-05-31T15:32:40Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&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;
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;
}&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;
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;
}&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;
==  JDK6 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;
import java.awt.AlphaComposite;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Frame;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.Menu;&lt;br /&gt;
import java.awt.MenuBar;&lt;br /&gt;
import java.awt.MenuItem;&lt;br /&gt;
import java.awt.SplashScreen;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
public class JDK6SplashTest extends Frame{&lt;br /&gt;
  static void renderSplashFrame(Graphics2D g, int frame) {&lt;br /&gt;
    final String[] comps = { &amp;quot;foo&amp;quot;, &amp;quot;bar&amp;quot;, &amp;quot;baz&amp;quot; };&lt;br /&gt;
    g.setComposite(AlphaComposite.Clear);&lt;br /&gt;
    g.fillRect(130, 250, 280, 40);&lt;br /&gt;
    g.setPaintMode();&lt;br /&gt;
    g.setColor(Color.BLACK);&lt;br /&gt;
    g.drawString(&amp;quot;Loading &amp;quot; + comps[(frame / 5) % 3] + &amp;quot;...&amp;quot;, 130, 260);&lt;br /&gt;
    g.fillRect(130, 270, (frame * 10) % 280, 20);&lt;br /&gt;
  }&lt;br /&gt;
  public JDK6SplashTest() {&lt;br /&gt;
    super(&amp;quot;SplashScreen demo&amp;quot;);&lt;br /&gt;
    setSize(500, 300);&lt;br /&gt;
    setLayout(new BorderLayout());&lt;br /&gt;
    Menu m1 = new Menu(&amp;quot;File&amp;quot;);&lt;br /&gt;
    MenuItem mi1 = new MenuItem(&amp;quot;Exit&amp;quot;);&lt;br /&gt;
    m1.add(mi1);&lt;br /&gt;
    mi1.addActionListener(new ActionListener(){&lt;br /&gt;
      public void actionPerformed(ActionEvent e){&lt;br /&gt;
        System.exit(0);&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
    });&lt;br /&gt;
    MenuBar mb = new MenuBar();&lt;br /&gt;
    setMenuBar(mb);&lt;br /&gt;
    mb.add(m1);&lt;br /&gt;
    final SplashScreen splash = SplashScreen.getSplashScreen();&lt;br /&gt;
    if (splash == null) {&lt;br /&gt;
      System.out.println(&amp;quot;SplashScreen.getSplashScreen() returned null&amp;quot;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    Graphics2D g = (Graphics2D) splash.createGraphics();&lt;br /&gt;
    if (g == null) {&lt;br /&gt;
      System.out.println(&amp;quot;g is null&amp;quot;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    for (int i = 0; i &amp;lt; 100; i++) {&lt;br /&gt;
      renderSplashFrame(g, i);&lt;br /&gt;
      splash.update();&lt;br /&gt;
      try {&lt;br /&gt;
        Thread.sleep(200);&lt;br /&gt;
      } catch (InterruptedException e) {&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    splash.close();&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
    toFront();&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JDK6SplashTest test = new JDK6SplashTest();&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;
==  SplashScreen in action ==&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;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&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;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - 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;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
/*&lt;br /&gt;
 * SplashDemo.java&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.AlphaComposite;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Frame;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.Menu;&lt;br /&gt;
import java.awt.MenuBar;&lt;br /&gt;
import java.awt.MenuItem;&lt;br /&gt;
import java.awt.SplashScreen;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import java.awt.event.WindowListener;&lt;br /&gt;
public class SplashDemo extends Frame implements ActionListener {&lt;br /&gt;
  static void renderSplashFrame(Graphics2D g, int frame) {&lt;br /&gt;
    final String[] comps = { &amp;quot;foo&amp;quot;, &amp;quot;bar&amp;quot;, &amp;quot;baz&amp;quot; };&lt;br /&gt;
    g.setComposite(AlphaComposite.Clear);&lt;br /&gt;
    g.fillRect(120, 140, 200, 40);&lt;br /&gt;
    g.setPaintMode();&lt;br /&gt;
    g.setColor(Color.BLACK);&lt;br /&gt;
    g.drawString(&amp;quot;Loading &amp;quot; + comps[(frame / 5) % 3] + &amp;quot;...&amp;quot;, 120, 150);&lt;br /&gt;
  }&lt;br /&gt;
  public SplashDemo() {&lt;br /&gt;
    super(&amp;quot;SplashScreen demo&amp;quot;);&lt;br /&gt;
    setSize(300, 200);&lt;br /&gt;
    setLayout(new BorderLayout());&lt;br /&gt;
    Menu m1 = new Menu(&amp;quot;File&amp;quot;);&lt;br /&gt;
    MenuItem mi1 = new MenuItem(&amp;quot;Exit&amp;quot;);&lt;br /&gt;
    m1.add(mi1);&lt;br /&gt;
    mi1.addActionListener(this);&lt;br /&gt;
    this.addWindowListener(closeWindow);&lt;br /&gt;
    MenuBar mb = new MenuBar();&lt;br /&gt;
    setMenuBar(mb);&lt;br /&gt;
    mb.add(m1);&lt;br /&gt;
    final SplashScreen splash = SplashScreen.getSplashScreen();&lt;br /&gt;
    if (splash == null) {&lt;br /&gt;
      System.out.println(&amp;quot;SplashScreen.getSplashScreen() returned null&amp;quot;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    Graphics2D g = splash.createGraphics();&lt;br /&gt;
    if (g == null) {&lt;br /&gt;
      System.out.println(&amp;quot;g is null&amp;quot;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    for (int i = 0; i &amp;lt; 100; i++) {&lt;br /&gt;
      renderSplashFrame(g, i);&lt;br /&gt;
      splash.update();&lt;br /&gt;
      try {&lt;br /&gt;
        Thread.sleep(90);&lt;br /&gt;
      } catch (InterruptedException e) {&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    splash.close();&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
    toFront();&lt;br /&gt;
  }&lt;br /&gt;
  public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
    System.exit(0);&lt;br /&gt;
  }&lt;br /&gt;
  private static WindowListener closeWindow = new WindowAdapter() {&lt;br /&gt;
    public void windowClosing(WindowEvent e) {&lt;br /&gt;
      e.getWindow().dispose();&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    SplashDemo test = new SplashDemo();&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;
==  SplashScreen with custom painting ==&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;
import java.awt.Color;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.FontMetrics;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.SplashScreen;&lt;br /&gt;
public class SplashScreenDemo {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    SplashScreen splashScreen = SplashScreen.getSplashScreen();&lt;br /&gt;
    Dimension size = splashScreen.getSize();&lt;br /&gt;
    int borderDim = (int) (size.height * 0.05);&lt;br /&gt;
    Graphics g = splashScreen.createGraphics();&lt;br /&gt;
    g.setColor(Color.blue);&lt;br /&gt;
    for (int i = 0; i &amp;lt; borderDim; i++)&lt;br /&gt;
      g.drawRect(i, i, size.width - 1 - i * 2, size.height - 1 - i * 2);&lt;br /&gt;
    FontMetrics fm = g.getFontMetrics();&lt;br /&gt;
    int sWidth = fm.stringWidth(&amp;quot;Initializing...&amp;quot;);&lt;br /&gt;
    int sHeight = fm.getHeight();&lt;br /&gt;
    if (sWidth &amp;lt; size.width &amp;amp;&amp;amp; 2 * sHeight &amp;lt; size.height) {&lt;br /&gt;
      g.setColor(Color.blue);&lt;br /&gt;
      g.drawString(&amp;quot;Initializing...&amp;quot;, (size.width - sWidth) / 2, size.height&lt;br /&gt;
          - 2 * sHeight);&lt;br /&gt;
    }&lt;br /&gt;
    splashScreen.update();&lt;br /&gt;
    try {&lt;br /&gt;
      Thread.sleep(5000);&lt;br /&gt;
    } catch (InterruptedException e) {&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>
		<author><name>Admin</name></author>	</entry>

	</feed>