|
Splash |
|
1 /* 2 * Copyright (c) 1998-2001, The University of Sheffield. 3 * 4 * This file is part of GATE (see http://gate.ac.uk/), and is free 5 * software, licenced under the GNU Library General Public License, 6 * Version 2, June 1991 (in the distribution as file licence.html, 7 * and also available at http://gate.ac.uk/gate/licence.html). 8 * 9 * Valentin Tablan 28/01/2001 10 * 11 * $Id: Splash.java,v 1.6 2001/04/21 17:42:52 valyt Exp $ 12 * 13 */ 14 package gate.gui; 15 16 import javax.swing.*; 17 import javax.swing.border.*; 18 import java.awt.*; 19 20 /** 21 * A splash screen. 22 * A splash screen is an image that appears on the screen while an application 23 * initialises. The implementation uses a {@link java.awt.Window} (a Frame with 24 * no decorations such as bar or buttons) and can either display a JComponent 25 * as content or an image. 26 */ 27 public class Splash extends JWindow { 28 29 /** 30 * Constructor from owner and content. 31 */ 32 public Splash(Window owner, JComponent content) { 33 super(owner); 34 getContentPane().setLayout(new BorderLayout()); 35 content.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED)); 36 getContentPane().add(content, BorderLayout.CENTER); 37 validate(); 38 pack(); 39 }// public Splash(Window owner, JComponent content) 40 41 /** 42 * Contructor from image. 43 */ 44 public Splash(String imageResourcePath) { 45 this(null, imageResourcePath); 46 }// public Splash(String imageResourcePath) 47 48 /** 49 * Constructor from content. 50 */ 51 public Splash(JComponent content) { 52 super(); 53 getContentPane().setLayout(new BorderLayout()); 54 content.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED)); 55 getContentPane().add(content, BorderLayout.CENTER); 56 validate(); 57 pack(); 58 }// public Splash(JComponent content) 59 60 /** 61 * Constructor from owner and image. 62 */ 63 public Splash(Window owner, String imageResourcePath) { 64 this(owner, 65 new JLabel(new ImageIcon(Splash.class.getResource(imageResourcePath)))); 66 }// public Splash(Window owner, String imageResourcePath) 67 68 /** 69 * Displays the splash screen centered in the owner's space or centered on 70 * the screen if no owner or owner not shown. 71 */ 72 public void show(){ 73 Dimension ownerSize; 74 Point ownerLocation; 75 if(getOwner() == null){ 76 ownerSize = Toolkit.getDefaultToolkit().getScreenSize(); 77 ownerLocation = new Point(0, 0); 78 }else{ 79 ownerSize = getOwner().getSize(); 80 ownerLocation = getOwner().getLocation(); 81 if(ownerSize.height == 0 || 82 ownerSize.width == 0 || 83 !getOwner().isVisible()){ 84 ownerSize = Toolkit.getDefaultToolkit().getScreenSize(); 85 ownerLocation = new Point(0, 0); 86 } 87 } 88 //Center the window 89 Dimension frameSize = getSize(); 90 if (frameSize.height > ownerSize.height) 91 frameSize.height = ownerSize.height; 92 if (frameSize.width > ownerSize.width) 93 frameSize.width = ownerSize.width; 94 setLocation(ownerLocation.x + (ownerSize.width - frameSize.width) / 2, 95 ownerLocation.y + (ownerSize.height - frameSize.height) / 2); 96 super.show(); 97 }// public void show() 98 99 }// class Splash
|
Splash |
|