KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > java2d > demos > Images > DukeAnim


1 /*
2  * @(#)DukeAnim.java 1.20 05/11/17
3  *
4  * Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  * -Redistribution of source code must retain the above copyright notice, this
10  * list of conditions and the following disclaimer.
11  *
12  * -Redistribution in binary form must reproduce the above copyright notice,
13  * this list of conditions and the following disclaimer in the documentation
14  * and/or other materials provided with the distribution.
15  *
16  * Neither the name of Sun Microsystems, Inc. or the names of contributors may
17  * be used to endorse or promote products derived from this software without
18  * specific prior written permission.
19  *
20  * This software is provided "AS IS," without a warranty of any kind. ALL
21  * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
22  * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
23  * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MIDROSYSTEMS, INC. ("SUN")
24  * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
25  * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
26  * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
27  * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,
28  * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY
29  * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
30  * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
31  *
32  * You acknowledge that this software is not designed, licensed or intended
33  * for use in the design, construction, operation or maintenance of any
34  * nuclear facility.
35  */

36
37 /*
38  * @(#)DukeAnim.java 1.20 05/11/17
39  */

40
41 package java2d.demos.Images;
42
43 import java.awt.*;
44 import javax.swing.JButton JavaDoc;
45 import java.awt.image.ImageObserver JavaDoc;
46 import java2d.AnimatingSurface;
47 import java2d.DemoPanel;
48
49
50 /**
51  * Animated gif with a transparent background.
52  */

53 public class DukeAnim extends AnimatingSurface implements ImageObserver JavaDoc {
54
55     private static Image agif, clouds;
56     private static int aw, ah, cw;
57     private int x;
58     private JButton JavaDoc b;
59
60
61     public DukeAnim() {
62         setBackground(Color.white);
63         clouds = getImage("clouds.jpg");
64         agif = getImage("duke.running.gif");
65         aw = agif.getWidth(this) / 2;
66         ah = agif.getHeight(this) / 2;
67         cw = clouds.getWidth(this);
68         dontThread = true;
69     }
70
71
72     public void reset(int w, int h) {
73         b = ((DemoPanel) getParent()).tools.startStopB;
74     }
75
76
77     public void step(int w, int h) { }
78
79
80     public void render(int w, int h, Graphics2D g2) {
81         if ((x -= 3) <= -cw) {
82             x = w;
83         }
84         g2.drawImage(clouds, x, 10, cw, h-20, this);
85         g2.drawImage(agif, w/2-aw, h/2-ah, this);
86     }
87
88
89     public boolean imageUpdate(Image img, int infoflags,
90                 int x, int y, int width, int height)
91     {
92         if (b.isSelected() && (infoflags & ALLBITS) != 0)
93             repaint();
94         if (b.isSelected() && (infoflags & FRAMEBITS) != 0)
95             repaint();
96         return isShowing();
97     }
98
99
100
101     public static void main(String JavaDoc s[]) {
102         createDemoFrame(new DukeAnim());
103     }
104 }
105
Popular Tags