advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

Scroll Window


Java Source:

/*
Scroll Window Applet 1.0

Copyright (c) 2000 By Goodwin Software

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 or the Licenses, or (at your option) any later version.

This program is distrubuted in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABLITY 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.

For any questions or comments regarding this program, please e-mail us a support@goodwinsoftware.com.
*/

import java.awt.*;
import java.applet.*;
import java.awt.image.*;

public class ScrollWindow extends Applet implements Runnable {
    Image winScratch;
    Graphics gScratch;
    Thread runner;
    String[] lines = new String[1000];
    int nlines, mlines, topline, fmh;
    Color outerborder = new Color(0xCCCCCC);
    Color middleborder = new Color(0x000000);
    Color innerborder = new Color(0xCCCCCC);
    Color textcolor = new Color(0x00FF00);
    Color textbackground = new Color(0x000000);
    boolean isRunning = false;
    int delay = 2;

    public void init() {
        int i;
        String s;

        Font f = new Font("Helvetica", Font.PLAIN, 12);
        FontMetrics fm = getFontMetrics(f);
        fmh = fm.getHeight();
        mlines = (getSize().height - 26) / fmh;
        winScratch = createImage(this.getSize().width, this.getSize().height);
        gScratch = winScratch.getGraphics();
        setBackground(Color.white);
        s = getParameter("delay");
        if (s != null)
           delay = Integer.parseInt(s);
        s = getParameter("outerborder");
        if (s != null)
          outerborder = new Color(Integer.parseInt(s, 16));
        s = getParameter("middleborder");
        if (s != null)
          middleborder = new Color(Integer.parseInt(s, 16));
        s = getParameter("innerborder");
        if (s != null)
          innerborder = new Color(Integer.parseInt(s, 16));
        s = getParameter("textcolor");
        if (s != null)
          textcolor = new Color(Integer.parseInt(s, 16));
        s = getParameter("textbackground");
        if (s != null)
          textbackground = new Color(Integer.parseInt(s, 16));
        for (i = 0; i < 1000; i++) {
            lines[i] = getParameter("line" + (i + 1));
            if (lines[i] == null)
                break;
        }
        nlines = i;
        topline = 0;
     }

    public void start() {
        if (runner == null) {
            runner = new Thread(this);
            runner.start();
        }
    }

    public void stop() {
        runner = null;
    }

    public void run() {
        Thread thisThread = Thread.currentThread();

        while (runner == thisThread) {
            repaint();
            if (isRunning && nlines > mlines) {
                topline++;
                if (topline == nlines)
                    topline = 0;
            }
            isRunning = true;
            try {
                Thread.sleep(delay * 1000);
            } catch(InterruptedException e) { }
        }
    }

    public void paint(Graphics g) {
        int w, h, i, cnt;
        String[] dlines = new String[mlines];

        w = getSize().width;
        h = getSize().height;
        Font f = new Font("Helvetica", Font.PLAIN, 12);
        cnt = 0;
        for (i = 0; i < mlines; i++) {
            if (topline + i < nlines) {
                dlines[i] = lines[topline + i];
            }
            else {
                if (nlines > mlines) {
                    dlines[i] = lines[cnt];
                    cnt++;
                }
                else {
                    dlines[i] = "";
                }
            }
        }
        gScratch.setColor(outerborder);
        gScratch.drawRect(0, 0, w - 1, h - 1);
        gScratch.drawRect(1, 1, w - 3, h - 3);
        gScratch.setColor(middleborder);
        gScratch.drawRect(2, 2, w - 5, h - 5);
        gScratch.drawRect(3, 3, w - 7, h - 7);
        gScratch.setColor(innerborder);
        gScratch.drawRect(4, 4, w - 9, h - 9);
        gScratch.drawRect(5, 5, w - 11, h - 11);
        gScratch.setColor(textbackground);
        gScratch.fillRect(6, 6, w - 12, h - 12);
        gScratch.setFont(f);
        gScratch.setColor(textcolor);
        for (i = 0; i < mlines; i++) {
            gScratch.drawString(dlines[i], 8, fmh * (i + 1) + 8);
        }
         g.drawImage(winScratch, 0, 0, this);
    }

    public final void update(Graphics g) {
        paint(g);
    }

}

Back to Scroll Window

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 Microsoft RIA Development Center
 IBM Rational Resource Center
 Destination .NET
XML error: not well-formed (invalid token) at line 33
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Free VMware Server 2.0 Now Release Candidate
Linux Player Xandros Grabs Storied Rival Linspire
Hey Enterprise: Here Comes the 3G iPhone
MySpace Opens Profile Portability API
Microsoft Jumps Into Virtualization Fray
Eclipse Ganymede Makes It Easier for Devs
Open Source Nokia a Threat to Microsoft, Google?
Salesforce, Google Head for 2nd on Apps
HP Open Sources Unix File System for Linux
Red Hat Opens Its Network to Space

Build a Generic Histogram Generator for SQL Server
Beyond XML and JSON: YAML for Java Developers
Mastering the Windows Mobile Emulators
Avaya AE Services Provide Rapid Telephony Integration with Facebook
Featured Algorithm: Intel Threading Building Blocks: parallel_reduce
Getting Started with Windows Live Admin Center
Eight Key Practices for ASP.NET Deployment
Java ME User Interfaces: Do It with LWUIT!
Talking VPro: Transcript
Bringing Semantic Technology to the Enterprise

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
IBM eBook: Planning a Service Oriented Architecture
IBM eBook: Choosing the Right Architecture--What It Means for You and Your Business
Microsoft Article: Will Hyper-V Make VMware This Decade's Netscape?
Avaya Article: Using Intelligent Presence to Create Smarter Business Applications
Intel Go Parallel Article: Getting Started with TBB on Windows
Microsoft Article: 7.0, Microsoft's Lucky Version?
Avaya Article: How to Feed Data into the Avaya Event Processor
IBM Article: Developing a Software Policy for Your Organization
Microsoft Article: Managing Virtual Machines with Microsoft System Center
Intel Go Parallel Article: Intel Threading Tools and OpenMP
HP eBook: Storage Networking , Part 1
Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
HP Video: StorageWorks EVA4400 and Oracle
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Red Gate Download: SQL Toolbelt and free High-Performance SQL Code eBook
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
Silverlight 2 App and Walkthrough: Leverage Silverlight 2 with SQL Server and XML
IBM Article: Enterprise Search--Do You Know What's Out There?
HP Demo: StorageWorks EVA4400
Microsoft Article: The Progress and Promise of Deep Zoom
Microsoft How-to Article: Get Going with Silverlight and Windows Live
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES