Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/demo/share/jfc/J2Ddemo/java2d/demos/Images/DukeAnim.java
41175 views
1
/*
2
*
3
* Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* - Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
*
12
* - Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
*
16
* - Neither the name of Oracle nor the names of its
17
* contributors may be used to endorse or promote products derived
18
* from this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
21
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
*/
32
package java2d.demos.Images;
33
34
35
import java.awt.*;
36
import javax.swing.JButton;
37
import java.awt.image.ImageObserver;
38
import java2d.AnimatingSurface;
39
import java2d.DemoPanel;
40
41
42
/**
43
* Animated gif with a transparent background.
44
*/
45
@SuppressWarnings("serial")
46
public class DukeAnim extends AnimatingSurface implements ImageObserver {
47
48
private static Image agif, clouds;
49
private static int aw, ah, cw;
50
private int x;
51
private JButton b;
52
53
@SuppressWarnings("LeakingThisInConstructor")
54
public DukeAnim() {
55
setBackground(Color.white);
56
clouds = getImage("clouds.jpg");
57
agif = getImage("duke.running.gif");
58
aw = agif.getWidth(this) / 2;
59
ah = agif.getHeight(this) / 2;
60
cw = clouds.getWidth(this);
61
dontThread = true;
62
}
63
64
@Override
65
public void reset(int w, int h) {
66
b = ((DemoPanel) getParent()).tools.startStopB;
67
}
68
69
@Override
70
public void step(int w, int h) {
71
}
72
73
@Override
74
public void render(int w, int h, Graphics2D g2) {
75
if ((x -= 3) <= -cw) {
76
x = w;
77
}
78
g2.drawImage(clouds, x, 10, cw, h - 20, this);
79
g2.drawImage(agif, w / 2 - aw, h / 2 - ah, this);
80
}
81
82
@Override
83
public boolean imageUpdate(Image img, int infoflags,
84
int x, int y, int width, int height) {
85
if (b.isSelected() && (infoflags & ALLBITS) != 0) {
86
repaint();
87
}
88
if (b.isSelected() && (infoflags & FRAMEBITS) != 0) {
89
repaint();
90
}
91
return isShowing();
92
}
93
94
public static void main(String[] s) {
95
createDemoFrame(new DukeAnim());
96
}
97
}
98
99