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


Partners & Affiliates











advertisement

Rotate


// --------------------------------------------------------------------------
// Source File Name: Rotate2.java
// Copyright OPUStech 2000 - All rights Reserved
// --------------------------------------------------------------------------


import java.applet.Applet;
import java.applet.AppletContext;
import java.awt.*;
import java.awt.image.MemoryImageSource;
import java.awt.image.PixelGrabber;


public class Rotate2 extends Applet implements Runnable {


// --------------------------------------------------------------------------
   public void init() {
// --------------------------------------------------------------------------

        Dimension d = size();
        Wide = d.width;
        High = d.height;
        buffer = createImage(Wide, High);
        Image_Name = getParameter("Image");
        color = getParameter("BackGround");
        if(color != null)
            BackGround_Color = Integer.parseInt(color,16);
        else
            BackGround_Color = Integer.parseInt("000000",16);


        step = getParameter("Steps");
        if(step != null)
            Step = Integer.parseInt(step);
        else
            Step = 255;

        if(Step > 255)
            Step = 255;

        Step = 255 / Step;

        pause = getParameter("Speed");
        if(pause != null)
            Pause = Integer.parseInt(pause);
        else
            Pause = 10;
    }

// --------------------------------------------------------------------------
   public void start() {
// --------------------------------------------------------------------------

        if(Rotate == null)
        {
            Rotate = new Thread(this);
            Rotate.start();
        }
    }


// --------------------------------------------------------------------------
   public void run() {
// --------------------------------------------------------------------------

        boolean flip = false;
        setBackground(new Color(BackGround_Color));
        if(!Image_Loaded)
        {
            repaint();
            grafics = getGraphics();
            MediaTracker tracker = new MediaTracker(this);
            Image_1 = getImage(getDocumentBase(), Image_Name);
            tracker.addImage(Image_1, 0);
            try
            {
                tracker.waitForAll();
                Image_Loaded = !tracker.isErrorAny();
            }
            catch(InterruptedException e) { }
            if(!Image_Loaded)
            {
                stop();
                grafics.drawString("Error loading images!", 10, 40);
                return;
            }
        }
        Image_Width  = Image_1.getWidth(this);
        Image_Height = Image_1.getHeight(this);
        Image_2  = Image_1;
        Image_3  = Image_1;
        int area = Image_Width * Image_Height;
        pixels1  = new int[area];
        pixels2  = new int[area];
        try
        {
            PixelGrabber pg = new PixelGrabber(Image_1, 0, 0, Image_Width, Image_Height, pixels1, 0, Image_Width);
            pg.grabPixels();
        }
        catch(InterruptedException e) { }
        for(int j = 0; j < area; j += Image_Width)
        {
            for(int i = 0; i < Image_Width; i++)
                pixels2[i + j] = pixels1[(j + Image_Width) - i - 1];

        }

        Image_3 = createImage(new MemoryImageSource(Image_Width, Image_Height, pixels2, 0, Image_Width));
        Image_Width = size().width;
        Image_Height = size().height;
        do
            try
            {
                showStatus("");
                for(counter = 0; counter < Image_Width; counter += Step )
                {
                    displayImage(grafics);
                    Thread.sleep(Pause);
                }

                flip = !flip;
                if(flip)
                    Image_1 = Image_2;
                else
                    Image_1 = Image_3;
                for(counter = Image_Width; counter > 0; counter -= Step)
                {
                    displayImage(grafics);
                    Thread.sleep(Pause);
                }

            }
            catch(InterruptedException e)
            {
                stop();
            }
        while(true);
    }


// --------------------------------------------------------------------------
   public void paint(Graphics g) {
// --------------------------------------------------------------------------

        Rectangle r = g.getClipRect();
        if(Image_Loaded)
        {
            g.clearRect(r.x, r.y, r.width + Step, r.height + Step);
            displayImage(g);
        }
        else
        {
            g.clearRect(r.x, r.y, r.width, r.height);
        }
        g.drawString("Loading image ...", 10, 20);
    }



// --------------------------------------------------------------------------
   private void displayImage(Graphics g) {
// --------------------------------------------------------------------------

        Graphics Logo = null;
        if(!Image_Loaded)
        {
            return;
        }
        else
        {
            Logo = g;
            g = buffer.getGraphics();
            g.clearRect((size().width - Image_Width) / 2, (size().height - Image_Height) / 2, Image_Width, Image_Height);
            g.drawImage(Image_1, ((size().width - Image_Width) + counter) / 2, (size().height - Image_Height) / 2, Image_Width - counter, Image_Height, null);
            Logo.drawImage(buffer, 0, 0, null);
            return;
        }
    }



// --------------------------------------------------------------------------
   public void stop() {
// --------------------------------------------------------------------------
        if(Rotate != null)
        {
            Rotate.stop();
            Rotate = null;
        }
    }


// --------------------------------------------------------------------------
// Program Variables
// --------------------------------------------------------------------------

    private Thread Rotate;
    private boolean Image_Loaded;
    private Graphics grafics;
    private Image Image_1;
    private Image Image_2;
    private Image Image_3;
    private Image buffer;

    private int BackGround_Color;
    private int Image_Width;
    private int Image_Height;
    private int Wide;
    private int High;
    private int counter;
    private int Step;
    private int Pause;
    private int pixels1[];
    private int pixels2[];

    private String Image_Name;
    private String color;
    private String step;
    private String pause;
}

Back to Rotate applet

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%.

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
Novell: openSUSE for All Linux Users

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
Persisting Data in Your Windows Mobile Device

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