www.pudn.com > bookstore2.rar > DigitalClock.java
/*
* Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved. U.S.
* Government Rights - Commercial software. Government users are subject
* to the Sun Microsystems, Inc. standard license agreement and
* applicable provisions of the FAR and its supplements. Use is subject
* to license terms.
*
* This distribution may include materials developed by third parties.
* Sun, Sun Microsystems, the Sun logo, Java and J2EE are trademarks
* or registered trademarks of Sun Microsystems, Inc. in the U.S. and
* other countries.
*
* Copyright (c) 2005 Sun Microsystems, Inc. Tous droits reserves.
*
* Droits du gouvernement americain, utilisateurs gouvernementaux - logiciel
* commercial. Les utilisateurs gouvernementaux sont soumis au contrat de
* licence standard de Sun Microsystems, Inc., ainsi qu'aux dispositions
* en vigueur de la FAR (Federal Acquisition Regulations) et des
* supplements a celles-ci. Distribue par des licences qui en
* restreignent l'utilisation.
*
* Cette distribution peut comprendre des composants developpes par des
* tierces parties. Sun, Sun Microsystems, le logo Sun, Java et J2EE
* sont des marques de fabrique ou des marques deposees de Sun
* Microsystems, Inc. aux Etats-Unis et dans d'autres pays.
*/
package clock;
import java.util.*;
import java.awt.*;
import java.applet.*;
import java.text.*;
public class DigitalClock extends Applet implements Runnable {
Thread timer; // The thread that displays clock
DateFormat formatter; // Formats the date displayed
String lastdate; // String to hold date displayed
Date currentDate; // Used to get date to display
Color numberColor; // Color of numbers
Font clockFaceFont;
Locale locale;
String language;
String country;
public void init() {
numberColor = Color.black;
try {
language = getParameter("language");
} catch (Exception E) {
}
try {
country = getParameter("country");
} catch (Exception E) {
}
if (country == null) {
country = "";
} else {
System.err.println(country);
}
if (language == null) {
locale = Locale.getDefault();
} else {
System.err.println(language);
locale = new Locale(language, country);
}
System.err.println(locale.getDisplayName());
try {
setBackground(new Color(Integer.parseInt(getParameter("bgcolor"), 16)));
} catch (Exception E) {
}
try {
numberColor =
new Color(Integer.parseInt(getParameter("fgcolor"), 16));
} catch (Exception E) {
}
formatter =
DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.MEDIUM,
locale);
currentDate = new Date();
lastdate = formatter.format(currentDate);
clockFaceFont = new Font("Sans-Serif", Font.PLAIN, 14);
resize(275, 25); // Set clock window size
}
// Paint is the main part of the program
public void paint(Graphics g) {
String today;
currentDate = new Date();
formatter =
DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.MEDIUM,
locale);
today = formatter.format(currentDate);
g.setFont(clockFaceFont);
// Erase and redraw
g.setColor(getBackground());
g.drawString(lastdate, 0, 12);
g.setColor(numberColor);
g.drawString(today, 0, 12);
lastdate = today;
currentDate = null;
}
public void start() {
timer = new Thread(this);
timer.start();
}
public void stop() {
timer = null;
}
public void run() {
Thread me = Thread.currentThread();
while (timer == me) {
try {
Thread.currentThread()
.sleep(100);
} catch (InterruptedException e) {
}
repaint();
}
}
public void update(Graphics g) {
paint(g);
}
public String getAppletInfo() {
return "Digital Clock.";
}
public String[][] getParameterInfo() {
String[][] info =
{
{
"bgcolor", "hexadecimal RGB number",
"The background color. Default is the color of your browser."
},
{ "fgcolor", "hexadecimal RGB number", "The color of the date." }
};
return info;
}
}