/*
* JSplash.java
*
* This file has been adapted to Jajuk by the Jajuk Team.
*
* The original copyrights and license follow:
*
* Copyright (c) 2004,2005 Gregory Kotsaftis
* gregkotsaftis@yahoo.com
* http://zeus-jscl.sourceforge.net/
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package ext;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.MediaTracker;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
/**
* Extends JLabel to provide support for custom text drawing inside image used
* for JSplash component.
* <p>
*
* @author Gregory Kotsaftis
* @since 1.06
*/
public final class JSplashLabel extends JLabel {
/** Generated serialVersionUID. */
private static final long serialVersionUID = 1L;
/** Used to draw the text string. */
private String mText = null;
/** Used to draw the copyright notice. */
private String mCopyright = null;
/** Font to use when drawing the text. */
private Font mFont = null;
/**
* Constructor.
* <p>
*
* @param url The location of the image (<b>it cannot be null</b>).
* @param copyright
* @param text The string to draw (can be null).
* @param font The font to use (can be null).
*/
public JSplashLabel(URL url, String copyright, String text, Font font) {
super();
ImageIcon icon = new ImageIcon(url);
if (icon.getImageLoadStatus() != MediaTracker.COMPLETE) {
System.err.println("Cannot load splash screen: " + url);
setText("Cannot load splash screen: " + url);
} else {
setIcon(icon);
mCopyright = copyright;
mText = text;
mFont = font;
if (mFont != null) {
setFont(mFont);
}
}
}
/**
* Overrides paint in order to draw the version number on the splash screen.
* <p>
*
* @param g The graphics context to use.
*/
@Override
public void paint(Graphics g) {
super.paint(g);
if (mText != null) {
g.setColor(Color.BLACK);
// Draw copyright notice
FontMetrics fm = g.getFontMetrics();
int width = fm.stringWidth(mCopyright) + 50;
int height = fm.getHeight();
g.drawString(mCopyright, getWidth() - width, (getHeight() - height) - 20);
// Draw release
g.drawString(mText, getWidth() - width, (getHeight() - height));
}
}
}