★ wanayoo — archive 1999 http://javaboutique.webdeveloper.com/acNeilson/source.htmlNouvelle recherche | Portail wanayoo
internet.com logo The Java Boutique

 APPLETS
by Category
by Date
by Name
Hall of Fame
Archive
Submit
Source Code
Servlets and JSP
 ARTICLES
Tutorials
Reviews
Glossary
 FORUM
FAQ
Users Poll
Discussion Group
Contact Us
 OTHER RESOURCES
Custom Applets
Java@Work
Java News
Jini Watch
Affiliate Programs
Top Searches
chat - counter
menu - countdown

internet.com
Internet News
Internet Stocks/VC
Internet Technology
Windows Internet Tech.
Linux/Open Source
Web Developer
ECommerce/Marketing
ISP Resources
ASP Resources
Wireless Internet
Downloads
Internet Resources
Internet Lists
International

Search internet.com
Advertising Info
Corporate Info

internet.commerce
Be a Commerce Partner
Computer Help
Affiliate Solutions
Map Your Website
Freelancer Exchange
Expert Tech Advice
Portal Power Add-Ons
Continuing Education
Offer Online Payment
Wireless Content
Download Solutions

WebDeveloper Network
BrowserWatch
Developer Forums
Developer News
JavaBoutique
JavaScriptSource
ScriptSearch
SearchEngineWatch
StreamingMediaWorld
The WDVL
WebDeveloper.com
WebDevelopersJournal WebReference.com
The XML Files
 [ Looking for a Site Map? ]

Free Internet Technology info!

acNeilson


/* acNeilson.java  bugly@interserv.com March 1996
 *
 *                 Changed name from CrazyCounter.java to acNeilson.java
 *                 Improved readability (because I'm so Alden Bugly) maybe
 *
 *                 Note, number is not a parem
 *
 *                 Calling syntax that works for me is:
 *
 *   
 *           
 *           
 *           
 *           
 *           
 *           
 *   
 *
 *   Passing VALUE (priming the pump) doesn't seem to work.
 *
 *   Renamed Numbers.gif to acNeilson.gif and PSP'd it so the counter
 *   and my schtick are harmonious.
*/
/* CrazyCounter.java */
/* 
 * Copyright (C) 1996 Mark Boyns 
 *
 * CrazyCounter
 * 
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

import java.applet.*;
import java.awt.*;
import java.net.*;

public class acNeilson extends java.applet.Applet implements Runnable
{
    Thread thread = null;
    MediaTracker tracker = null;
    Image numbers;
    int number_frames;
    int number_width;
    int number_height;
    int how_many;
    int delay;
    String value;
    boolean first = true;
    int state = 0;

    public void init ()
    {
	String param;
	
	tracker = new MediaTracker (this);

	try
	{
	    numbers = getImage(getCodeBase(),"../Images/acNeilson.gif");
	    tracker.addImage (numbers, 0);
	    
	    param = getParameter ("NUMBER_FRAMES");
	    number_frames = Integer.parseInt (param);
	    
	    param = getParameter ("NUMBER_WIDTH");
	    number_width = Integer.parseInt (param);
	    
	    param = getParameter ("NUMBER_HEIGHT");
	    number_height = Integer.parseInt (param);

	    param = getParameter ("HOW_MANY");
	    how_many = Integer.parseInt (param);

	    param = getParameter ("DELAY");
	    delay = Integer.parseInt (param);

	    value = getParameter ("VALUE");
	    if (value == null)
	    {
		value = String.valueOf ((long)(Math.random () * (long)(Math.pow (10, how_many))));
	    }
	}
	catch (Exception e)
	{
	    return;
	}

	resize ((how_many * number_width), number_height);

	thread = new Thread (this);
	thread.start ();
    }

    public void stop ()
    {
	if (thread != null)
	{
	    thread.stop ();
	    thread = null;
	}
    }

    public void run ()
    {
	tracker.checkAll (true);

	for (;;)
	{
	    repaint ();

	    try
	    {
		Thread.sleep (delay);
	    }
	    catch (Exception e)
	    {
	    }
	}
    }

    /* Handle mouse events. */
    public boolean mouseDown (Event e, int x, int y)
    {
	if (thread != null)
        {
            thread.stop ();
            thread = null;
        }
        else
        {
            thread = new Thread (this);
            thread.start ();
        }
	return true;
    }
    
    /* Handle keyboard events. */
    public boolean keyDown (Event e, int key)
    {
	switch (key)
	{
	case '+':		// faster
	    delay -= 100;
	    if (delay < 10)
	    {
		delay = 10;
	    }
	    break;

	case '-':		// slower
	    delay += 100;
	    break;

	case '0':
	    value = String.valueOf (0);
	    state = 0;
	    break;

	default:
	    value = String.valueOf ((long)(Math.random () * (long)(Math.pow (10, how_many))));
	    state = 0;
	    break;
	}
	
	return true;
    }

    /* Don't clear the screen; just call paint. */
    public void update (Graphics g)
    {
	paint (g);
    }

    /* Paint the screen. */
    public void paint (Graphics g)
    {
	int i;
	int digit;
	boolean scroll;
	
	if (tracker.checkAll () == false)
	{
	    g.setColor (Color.black);
	    g.fillRect (0, 0, (how_many * number_width), number_height);
	    return;
	}

	int zeros = how_many - value.length ();
	for (i = 0; i < zeros; i++)
	{
	    Graphics gc = g.create (i * number_width, 0, number_width, number_height);
	    gc.drawImage (numbers, 0, 0, this);
	    gc.dispose ();
	}

	scroll = true;
	
	for (i = value.length () - 1; i >= 0; i--)
	{
	    digit = value.charAt (i) - '0';
	    
	    Graphics gc = g.create ((zeros+i) * number_width, 0, number_width, number_height);

	    if (scroll)
	    {
		switch (state)
		{
		case 0:
		    if (digit == 0)
		    {
			gc.drawImage (numbers, 0, -((9 * number_height) + number_height/2), this);
		    }
		    gc.drawImage (numbers, 0, -((digit * number_height) - number_height/2), this);
		    break;

		case 1:
		    gc.drawImage (numbers, 0, -(digit * number_height), this);
		    break;

		case 2:
		    gc.drawImage (numbers, 0, -((digit * number_height) + number_height/2), this);
		    if (digit == 9)
		    {
			gc.drawImage (numbers, 0, -((0 * number_height) - number_height/2), this);
		    }
		    break;
		}
	    }
	    else
	    {
		gc.drawImage (numbers, 0, -(digit * number_height), this);
	    }
	    
	    gc.dispose ();

	    if (digit != 9)
	    {
		scroll = false;
	    }
	}

	if (state >= 2)
	{
	    state = 0;
	    long l = Long.parseLong (value);
	    l++;
	    value = String.valueOf (l);
	}
	state++;
    }
}

/*
Local variables:
eval: (progn (make-local-variable 'compile-command) (setq compile-command (concat "javac " buffer-file-name)))
End:
*/

Browse More Great Applets ...


Applet Index
(sorted alphabetically)

A B C D E F G H I J K
L M N O P Q R S T U
V W X Y Z #s
The Java Source
(applets w/source code)

A B C D E F G H I J K
L M N O P Q R S T U
V W X Y Z


The Quintessential Resource for Internet Servers



Copyright © 1999 internet.com Corporation
All Rights Reserved. Legal Notices.