Please visit our sponsor
UNKNOWN //************************************** //HTML for :Funky animated Java Banner //************************************** <applet code="AnimCercles.class" width="350" height="180" align="BOTTOM"> <param name="bgColor" value="blue"> <param name="fgColor" value="green"> <param name="bgType" value="Oval"> <param name="text" value="Java !!!"> <param name="url" value="http://www.nctech.fr/"> <param name="font" value="TimesRoman"> <param name="style" value="BOLDITALIC"> <param name="textColor" value="red"> <param name="size" value="95"> <param name="playBack" value="0"> <param name="step" value="12"> <param name="timeSleep" value="30"> </applet> //************************************** // Name: Funky animated Java Banner // Description:To spice up your web page. Comments are in French Written by:http://www.nctech.fr/Zimmermann/public-html/Applets/Animation/AnimCercles.html // By: Found on the Web // // // Inputs:None // // Returns:None // //Assumes:None // //Side Effects:None //************************************** import java.awt.*; import java.util.StringTokenizer; /** Affiche un message sur un fond de cercles concentriques animes. * Vos remarques a vincent.zimmermann@nctech.fr * Utilisable librement. * * Exemple d'utilisation dans une page HTML : * <applet code="AnimCercles.class" width="350" height="200"> * <param name="bgColor" value="blue"> * <param name="fgColor" value="green"> * <param name="bgType" value="RoundRect"> * <param name="cornerX" value="35"> * <param name="cornerY" value="25"> * <param name="text" value="Java !!!"> * <param name="font" value="TimesRoman"> * <param name="style" value="BOLD"> * <param name="textColor" value="red"> * <param name="size" value="90"> * <param name="playBack" value="0"> * <param name="step" value="10"> * <param name="timeSleep" value="15"> * Il aurait du y avoir une applet ici si votre Browser avait supporte Java... * </applet> * * Explications : * font : Helvetica, TimesRoman, Courier, Dialog * style : PLAIN, BOLD, ITALIC, BOLDITALIC * bgColor & fgColor : white, black, lightGray, gray, darkGray, red, green, *& textColor blue, yellow, magenta, cyan, pink, orange * (RGB): 255:255:255 * (RGB): 255,255,255 * (RGB): 255.255.255 * playBack : 0 ou 1 * bgType : Oval, Rect, RoundRect * et pour le RoundRect, specifier le format du coin arrondis (cornerX, cornerY) * */ public class AnimCercles extends java.applet.Applet implements Runnable { // On cree un Thread pour l'applet Thread runner; // Le message String text; // La police du message Font f; String fontString; int style; int size; Color textColor; // Position du message int x; int y; // Taille de l'ecran int width; int height; // Le max entre width et height. int max; // Pour le double buffering (eviter les scintillements) Image offscreenImg; Graphics offscreenG; // Les fonds de l'ecran (pour gagner en rapidite dans l'anim) Image[] fondEcran = new Image[6]; Graphics[] fondEcranG = new Graphics[6]; // Couleur du fond Color bgColor; Color fgColor; // Le type de motif du fond (Oval, Rect, RoundRect) String bgType; // Dans le cas d'un RoundRect, la taille de l'arrondis int cornerX; int cornerY; // Decalage entre 2 cerles int step; // Temps d'attente entre chaque plans de l'animation int timeSleep; // L'animation fait un aller retour si playBack = 1 int playBack; // Pour la gestion des couleurs RGB String rgbDelimiter = ":,."; StringTokenizer st; public void init() { // Recuperation des parametres de l'Applet String s; Integer intObj; // Pour obtenir la taille de l'Applet en pixels. try { intObj = new Integer(getParameter("width")); width = intObj.intValue(); } catch (Exception e) { width = 300; } try { intObj = new Integer(getParameter("height")); height = intObj.intValue(); } catch (Exception e) { height = 100; } s = getParameter("bgType"); if (s == null) bgType = "Oval"; else if (s.equalsIgnoreCase("Rect")) bgType = "Rect"; else if (s.equalsIgnoreCase("RoundRect")) bgType = "RoundRect"; else bgType = "Oval"; try { intObj = new Integer(getParameter("cornerX")); cornerX = intObj.intValue(); } catch (Exception e) { cornerX = 25; } try { intObj = new Integer(getParameter("cornerY")); cornerY = intObj.intValue(); } catch (Exception e) { cornerY = 25; } text = getParameter("text"); if (text == null) text = "NCTech !"; s = getParameter("font"); if (s == null) fontString = "TimesRoman"; else if (s.equalsIgnoreCase("TimesRoman")) fontString = "TimesRoman"; else if (s.equalsIgnoreCase("Courier")) fontString = "Courier"; else if (s.equalsIgnoreCase("Helvetica")) fontString = "Helvetica"; else if (s.equalsIgnoreCase("Dialog")) fontString = "Dialog"; else fontString = "TimesRoman"; s = getParameter("style"); if (s == null) style = Font.PLAIN; else if (s.equalsIgnoreCase("PLAIN")) style = Font.PLAIN; else if (s.equalsIgnoreCase("BOLD")) style = Font.BOLD; else if (s.equalsIgnoreCase("ITALIC")) style = Font.ITALIC; else if (s.equalsIgnoreCase("BOLDITALIC") || s.equalsIgnoreCase("ITALICBOLD")) style = Font.BOLD + Font.ITALIC; else style = Font.PLAIN; try { intObj = new Integer(getParameter("size")); size = intObj.intValue(); } catch (Exception e) { size = 20; } s = getParameter("textColor"); if (s != null) st = new StringTokenizer(s, rgbDelimiter); if (s == null) textColor = Color.lightGray; else if (s.equalsIgnoreCase("white")) textColor = Color.white; else if (s.equalsIgnoreCase("black")) textColor = Color.black; else if (s.equalsIgnoreCase("lightGray")) textColor = Color.lightGray; else if (s.equalsIgnoreCase("gray")) textColor = Color.gray; else if (s.equalsIgnoreCase("darkGray")) textColor = Color.darkGray; else if (s.equalsIgnoreCase("red")) textColor = Color.red; else if (s.equalsIgnoreCase("green")) textColor = Color.green; else if (s.equalsIgnoreCase("blue")) textColor = Color.blue; else if (s.equalsIgnoreCase("magenta")) textColor = Color.magenta; else if (s.equalsIgnoreCase("cyan")) textColor = Color.cyan; else if (s.equalsIgnoreCase("pink")) textColor = Color.pink; else if (s.equalsIgnoreCase("orange")) textColor = Color.orange; else if (st.countTokens() == 3) { Integer r = new Integer(st.nextToken()); Integer g = new Integer(st.nextToken()); Integer b = new Integer(st.nextToken()); textColor = new Color(r.intValue(), g.intValue(), b.intValue()); } else textColor = Color.yellow; try { intObj = new Integer(getParameter("step")); step = intObj.intValue(); } catch (Exception e) { step = 5; } try { intObj = new Integer(getParameter("timeSleep")); timeSleep = intObj.intValue(); } catch (Exception e) { timeSleep = 10; } try { intObj = new Integer(getParameter("playBack")); playBack = intObj.intValue(); } catch (Exception e) { playBack = 1; } s = getParameter("bgColor"); if (s != null) st = new StringTokenizer(s, rgbDelimiter); if (s == null) bgColor = Color.lightGray; else if (s.equalsIgnoreCase("white")) bgColor = Color.white; else if (s.equalsIgnoreCase("black")) bgColor = Color.black; else if (s.equalsIgnoreCase("gray")) bgColor = Color.gray; else if (s.equalsIgnoreCase("darkGray")) bgColor = Color.darkGray; else if (s.equalsIgnoreCase("red")) bgColor = Color.red; else if (s.equalsIgnoreCase("green")) bgColor = Color.green; else if (s.equalsIgnoreCase("blue")) bgColor = Color.blue; else if (s.equalsIgnoreCase("yellow")) bgColor = Color.yellow; else if (s.equalsIgnoreCase("magenta")) bgColor = Color.magenta; else if (s.equalsIgnoreCase("cyan")) bgColor = Color.cyan; else if (s.equalsIgnoreCase("pink")) bgColor = Color.pink; else if (s.equalsIgnoreCase("orange")) bgColor = Color.orange; else if (st.countTokens() == 3) { Integer r = new Integer(st.nextToken()); Integer g = new Integer(st.nextToken()); Integer b = new Integer(st.nextToken()); bgColor = new Color(r.intValue(), g.intValue(), b.intValue()); } else bgColor = Color.lightGray; s = getParameter("fgColor"); if (s != null) st = new StringTokenizer(s, rgbDelimiter); if (s == null) fgColor = Color.lightGray; else if (s.equalsIgnoreCase("white")) fgColor = Color.white; else if (s.equalsIgnoreCase("black")) fgColor = Color.black; else if (s.equalsIgnoreCase("lightGray")) fgColor = Color.lightGray; else if (s.equalsIgnoreCase("gray")) fgColor = Color.gray; else if (s.equalsIgnoreCase("darkGray")) fgColor = Color.darkGray; else if (s.equalsIgnoreCase("red")) fgColor = Color.red; else if (s.equalsIgnoreCase("green")) fgColor = Color.green; else if (s.equalsIgnoreCase("blue")) fgColor = Color.blue; else if (s.equalsIgnoreCase("magenta")) fgColor = Color.magenta; else if (s.equalsIgnoreCase("cyan")) fgColor = Color.cyan; else if (s.equalsIgnoreCase("pink")) fgColor = Color.pink; else if (s.equalsIgnoreCase("orange")) fgColor = Color.orange; else if (st.countTokens() == 3) { Integer r = new Integer(st.nextToken()); Integer g = new Integer(st.nextToken()); Integer b = new Integer(st.nextToken()); fgColor = new Color(r.intValue(), g.intValue(), b.intValue()); } else fgColor = Color.yellow; setBackground(bgColor); f = new Font(fontString, style, size); // Pour un placement correct du message dans la zone d'affichage FontMetrics fm = getFontMetrics(f); int textWidth = fm.stringWidth(text); x = (width - textWidth) / 2; int textHeight = fm.getAscent() + fm.getDescent(); y = (height - textHeight) / 2 + fm.getAscent(); offscreenImg = createImage(width, height); offscreenG = offscreenImg.getGraphics(); offscreenG.setColor(bgColor); offscreenG.fillRect(0, 0, width, height); repaint(); } public void start() { if (runner == null); { runner = new Thread(this); runner.start(); } } public void stop() { if (runner != null) { runner.stop(); runner = null; } } public void createBackground() { boolean switchColor; for (int i=0; i &lt;= 5; i++) { fondEcran[i] = createImage(width, height); fondEcranG[i] = fondEcran[i].getGraphics(); fondEcranG[i].setColor(bgColor); fondEcranG[i].fillRect(0, 0, width, height); switchColor = true; for (int j= max + ((i + 1) * (step / 3)); j &gt;= 0; j -= step) { if (switchColor) { fondEcranG[i].setColor(bgColor); if (bgType.equals("Oval")) fondEcranG[i].fillOval((width - j) / 2, (height - j) / 2, j, j); if (bgType.equals("Rect")) fondEcranG[i].fillRect((width - j) / 2, (height - j) / 2, j, j); if (bgType.equals("RoundRect")) fondEcranG[i].fillRoundRect((width - j) / 2, (height - j) / 2, j, j, cornerX, cornerY); switchColor = false; } else { fondEcranG[i].setColor(fgColor); if (bgType.equals("Oval")) fondEcranG[i].fillOval((width - j) / 2, (height - j) / 2, j, j); if (bgType.equals("Rect")) fondEcranG[i].fillRect((width - j) / 2, (height - j) / 2, j, j); if (bgType.equals("RoundRect")) fondEcranG[i].fillRoundRect((width - j) / 2, (height - j) / 2, j, j, cornerX, cornerY); switchColor = true; } } } } public void run() { if (width &gt; height) max = width; else max = height; max *= Math.sqrt(2); createBackground(); repaint(); offscreenG.setFont(f); offscreenG.setColor(textColor); while (true) { for (int i=0; i &lt;= 5; i++) { offscreenG.drawImage(fondEcran[i], 0, 0, this); offscreenG.drawString(text, x, y); repaint(); try { Thread.sleep(timeSleep); } catch (InterruptedException e) { } } if (playBack == 1) { for (int i=5; i &gt;= 0; i--) { offscreenG.drawImage(fondEcran[i], 0, 0, this); offscreenG.drawString(text, x, y); try { Thread.sleep(timeSleep); } catch (InterruptedException e) { } repaint(); } } } } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { g.drawImage(offscreenImg, 0, 0, this); } public String getAppletInfo() { return "AnimCercles, april 1997, Vincent Zimmermann at NCTech, France"; } }