Package de.anormalmedia.vividswinganimations.demo

Source Code of de.anormalmedia.vividswinganimations.demo.DemoFrame

package de.anormalmedia.vividswinganimations.demo;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

import de.anormalmedia.vividswinganimations.Animation;
import de.anormalmedia.vividswinganimations.bounds.LocationAnimation;
import de.anormalmedia.vividswinganimations.bounds.SizeAnimation;
import de.anormalmedia.vividswinganimations.color.BackgroundColorAnimation;
import de.anormalmedia.vividswinganimations.color.ForegroundColorAnimation;
import de.anormalmedia.vividswinganimations.effects.BackgroundColorRangeAnimation;
import de.anormalmedia.vividswinganimations.effects.CircleAnimation;
import de.anormalmedia.vividswinganimations.fade.WindowFadeFactory;
import de.anormalmedia.vividswinganimations.listener.AnimationAdapter;
import de.anormalmedia.vividswinganimations.runner.DefaultAnimationRunner;

public class DemoFrame extends JFrame {

    public DemoFrame() {
        super( "Swing Animations" );
        // Window translucency in Java 7 is only supported for undecortated windows.
        setUndecorated( true );

        setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

        Container contentPane = getContentPane();
        contentPane.setBackground( Color.BLACK );
        contentPane.setLayout( new BorderLayout() );

        JLabel lblGeil = new JLabel( "Geil, ne!?" );
        lblGeil.setForeground( new Color( 0, 0, 0, 0 ) );
        lblGeil.setFont( lblGeil.getFont().deriveFont( Font.BOLD, 32 ) );
        lblGeil.setHorizontalAlignment( SwingUtilities.CENTER );
        lblGeil.setVerticalAlignment( SwingUtilities.CENTER );
        contentPane.add( lblGeil, BorderLayout.CENTER );

        setSize( 400, 300 );
        setVisible( true );
        Toolkit.getDefaultToolkit().setDynamicLayout( true );

        final Rectangle frameBounds = DemoFrame.this.getGraphicsConfiguration().getBounds();

        DefaultAnimationRunner defaultAnimationExecutor = new DefaultAnimationRunner();

        SizeAnimation heightAnimation = new SizeAnimation( this, -1, 600 );
        heightAnimation.setStartOffset( 1000 );
        heightAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( heightAnimation );

        SizeAnimation widthAnimation = new SizeAnimation( this, 800, -1 );
        widthAnimation.setStartOffset( 2000 );
        widthAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( widthAnimation );

        BackgroundColorAnimation greenBackgroundColorAnimation = new BackgroundColorAnimation( contentPane, Color.GREEN );
        greenBackgroundColorAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( greenBackgroundColorAnimation );

        BackgroundColorAnimation redBackgroundColorAnimation = new BackgroundColorAnimation( contentPane, Color.RED );
        redBackgroundColorAnimation.setStartOffset( 1000 );
        redBackgroundColorAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( redBackgroundColorAnimation );

        BackgroundColorAnimation blueBackgroundColorAnimation = new BackgroundColorAnimation( contentPane, Color.BLUE );
        blueBackgroundColorAnimation.setStartOffset( 2000 );
        blueBackgroundColorAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( blueBackgroundColorAnimation );

        Animation windowFadeAnimation = WindowFadeFactory.createWindowFadeAnimation( this, 0f );
        windowFadeAnimation.setStartOffset( 3000 );
        windowFadeAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( windowFadeAnimation );

        windowFadeAnimation.addAnimationListener( new AnimationAdapter() {

            @Override
            public void animationFinished() {
                Point p = DemoFrame.this.getLocation();
                p.x = frameBounds.x + frameBounds.width - DemoFrame.this.getWidth();
                DemoFrame.this.setLocation( p );
            }
        } );

        windowFadeAnimation = WindowFadeFactory.createWindowFadeAnimation( this, 1f );
        windowFadeAnimation.setStartOffset( 4000 );
        windowFadeAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( windowFadeAnimation );

        SizeAnimation collapseWidthAnimation = new SizeAnimation( this, 200, -1 );
        collapseWidthAnimation.setStartOffset( 6000 );
        collapseWidthAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( collapseWidthAnimation );

        LocationAnimation locationXAnimation = new LocationAnimation( this, frameBounds.x + frameBounds.width / 2 + 100, -1 );
        locationXAnimation.setStartOffset( 6000 );
        locationXAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( locationXAnimation );

        SizeAnimation collapseHeighthAnimation = new SizeAnimation( this, -1, 100 );
        collapseHeighthAnimation.setStartOffset( 7000 );
        collapseHeighthAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( collapseHeighthAnimation );

        LocationAnimation locationYAnimation = new LocationAnimation( this, -1, 250 );
        locationYAnimation.setStartOffset( 7000 );
        locationYAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( locationYAnimation );

        CircleAnimation circleAnimation = new CircleAnimation( this, 200, true );
        circleAnimation.setStartOffset( 8000 );
        circleAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( circleAnimation );

        CircleAnimation circleReverseAnimation = new CircleAnimation( this, 200, false );
        circleReverseAnimation.setStartOffset( 9000 );
        circleReverseAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( circleReverseAnimation );

        BackgroundColorAnimation blackBackgroundColorAnimation = new BackgroundColorAnimation( contentPane, Color.BLACK );
        blackBackgroundColorAnimation.setStartOffset( 10000 );
        blackBackgroundColorAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( blackBackgroundColorAnimation );

        ForegroundColorAnimation foregroundColorAnimation = new ForegroundColorAnimation( lblGeil, Color.WHITE );
        foregroundColorAnimation.setStartOffset( 11000 );
        foregroundColorAnimation.setDuration( 2000 );
        defaultAnimationExecutor.addAnimation( foregroundColorAnimation );

        BackgroundColorRangeAnimation prepareColorRangeAnimation = new BackgroundColorRangeAnimation( contentPane, new Color( Color.HSBtoRGB( 0f, 1f, 1f ) ) );
        prepareColorRangeAnimation.setStartOffset( 13000 );
        prepareColorRangeAnimation.setDuration( 1000 );
        defaultAnimationExecutor.addAnimation( prepareColorRangeAnimation );

        BackgroundColorRangeAnimation backgroundColorRangeAnimation = new BackgroundColorRangeAnimation( contentPane, new Color( Color.HSBtoRGB( 0.99f, 1f, 1f ) ) );
        backgroundColorRangeAnimation.setStartOffset( 14000 );
        backgroundColorRangeAnimation.setDuration( 10000 );
        defaultAnimationExecutor.addAnimation( backgroundColorRangeAnimation );

        windowFadeAnimation = WindowFadeFactory.createWindowFadeAnimation( this, 0f );
        windowFadeAnimation.setStartOffset( 16000 );
        windowFadeAnimation.setDuration( 8000 );
        defaultAnimationExecutor.addAnimation( windowFadeAnimation );

        windowFadeAnimation.addAnimationListener( new AnimationAdapter() {

            @Override
            public void animationFinished() {
                DemoFrame.this.dispose();
            }
        } );

        defaultAnimationExecutor.start();
    }

    /**
     * @param args
     */
    public static void main( String[] args ) {
        new DemoFrame();
    }

}
TOP

Related Classes of de.anormalmedia.vividswinganimations.demo.DemoFrame

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.