⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fadeanim.java

📁 please read it,you can
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * @(#)FadeAnim.java	1.6  98/12/03 * * Copyright 1998 by Sun Microsystems, Inc., * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. * All rights reserved. * * This software is the confidential and proprietary information * of Sun Microsystems, Inc. ("Confidential Information").  You * shall not disclose such Confidential Information and shall use * it only in accordance with the terms of the license agreement * you entered into with Sun. */import java.awt.*;import java.awt.geom.*;import java.awt.image.*;import java.awt.event.*;import java.util.Vector;import javax.swing.*;import javax.swing.event.*;import javax.swing.border.*;import java.net.URL;/** * The FadeAnim class demonstrates animation of fading and compositing  * shapes, text and images. */public class FadeAnim extends JApplet {    Demo demo;    public void init() {        getContentPane().add(demo = new Demo());        getContentPane().add("East", new DemoControls(demo));    }    public void start() {        demo.start();    }      public void stop() {        demo.stop();    }    /**     * The Demo class performs the animation and painting.     */    static class Demo extends JPanel implements Runnable {        private static TexturePaint texture;        static {            int w = 10; int h = 10;            BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);            Graphics2D gi = bi.createGraphics();            Color oc = Color.blue; Color ic = Color.green;            gi.setPaint(new GradientPaint(0,0,oc,w*.35f,h*.35f,ic));            gi.fillRect(0, 0, w/2, h/2);            gi.setPaint(new GradientPaint(w,0,oc,w*.65f,h*.35f,ic));            gi.fillRect(w/2, 0, w/2, h/2);            gi.setPaint(new GradientPaint(0,h,oc,w*.35f,h*.65f,ic));            gi.fillRect(0, h/2, w/2, h/2);            gi.setPaint(new GradientPaint(w,h,oc,w*.65f,h*.65f,ic));            gi.fillRect(w/2, h/2, w/2, h/2);            texture = new TexturePaint(bi,new Rectangle(0,0,w,h));        }        private static BasicStroke bs = new BasicStroke(6);         // an array of Font objects        private static Font fonts[] = {                    new Font("Times New Roman", Font.PLAIN, 64),                    new Font("serif", Font.BOLD + Font.ITALIC, 24),                    new Font("Courier", Font.BOLD, 36),                    new Font("Arial", Font.BOLD + Font.ITALIC, 48),                    new Font("Helvetica", Font.PLAIN, 52)};        // an array of String objects         private static String strings[] = {                    "Alpha", "Composite", "Src", "SrcOver",                     "SrcIn", "SrcOut", "Clear", "DstOver", "DstIn" };        // an array of images        private static String imgs[] = {                     "jumptojavastrip.gif", "duke.gif", "star7.gif" };        // an array of colors        private static Paint paints[] = {                     Color.red, Color.blue, Color.green, Color.magenta,                     Color.orange, Color.pink, Color.cyan, texture,                    Color.yellow, Color.lightGray, Color.white};        private Vector vector = new Vector(13);        public int numShapes, numStrings, numImages;        private Thread thread;        private BufferedImage bimg;                public Demo() {            setBackground(Color.black);            // initializes to display 2 strings, 3 images and 8 shapes            setStrings(2);            setImages(3);            setShapes(8);        }                public Image getImage(String name) {            URL url = FadeAnim.class.getResource(name);            Image img = getToolkit().getImage(url);            try {                MediaTracker tracker = new MediaTracker(this);                tracker.addImage(img, 0);                tracker.waitForID(0);            } catch (Exception e) {}            return img;        }            // adds images to a Vector        public void setImages(int num) {                if (num < numImages) {                Vector v = new Vector(vector.size());                for (int i = 0; i < vector.size(); i++) {                    if (((ObjectData) vector.get(i)).object instanceof Image) {                        v.addElement(vector.get(i));                    }                }                vector.removeAll(v);                v.setSize(num);                vector.addAll(v);            } else {                Dimension d = getSize();                for (int i = numImages; i < num; i++) {                    Object obj = getImage(imgs[i % imgs.length]);                    if (imgs[i % imgs.length].equals("jumptojavastrip.gif")) {                        int iw = ((Image) obj).getWidth(null);                        int ih = ((Image) obj).getHeight(null);                        BufferedImage bimg = new BufferedImage(iw, ih, BufferedImage.TYPE_INT_RGB);                        bimg.createGraphics().drawImage((Image) obj, 0, 0, null);                        obj = bimg;                    }                    ObjectData od = new ObjectData(obj, Color.black);                    od.reset(d.width, d.height);                    vector.addElement(od);                }            }            numImages = num;        }                    // adds Strings to a Vector        public void setStrings(int num) {                if (num < numStrings) {                Vector v = new Vector(vector.size());                for (int i = 0; i < vector.size(); i++) {                    if (((ObjectData) vector.get(i)).object instanceof TextData) {                        v.addElement(vector.get(i));                    }                }                vector.removeAll(v);                v.setSize(num);                vector.addAll(v);            } else {                Dimension d = getSize();                for (int i = numStrings; i < num; i++) {                    int j = i % fonts.length;                    int k = i % strings.length;                    Object obj = new TextData(strings[k], fonts[j], this);                     ObjectData od = new ObjectData(obj, paints[i%paints.length]);                    od.reset(d.width, d.height);                    vector.addElement(od);                }            }            numStrings = num;        }                    // adds shapes to a Vector        public void setShapes(int num) {                if (num < numShapes) {                Vector v = new Vector(vector.size());                for (int i = 0; i < vector.size(); i++) {                    if (((ObjectData) vector.get(i)).object instanceof Shape) {                        v.addElement(vector.get(i));                    }                }                vector.removeAll(v);                v.setSize(num);                vector.addAll(v);            } else {                Dimension d = getSize();                for (int i = numShapes; i < num; i++) {                    Object obj = null;                    switch (i % 7) {                        case 0 : obj = new GeneralPath(); break;                        case 1 : obj = new Rectangle2D.Double(); break;                        case 2 : obj = new Ellipse2D.Double(); break;                        case 3 : obj = new Arc2D.Double(); break;                        case 4 : obj = new RoundRectangle2D.Double(); break;                        case 5 : obj = new CubicCurve2D.Double(); break;                        case 6 : obj = new QuadCurve2D.Double(); break;                    }                    ObjectData od = new ObjectData(obj, paints[i%paints.length]);                    od.reset(d.width, d.height);                    vector.addElement(od);                }            }             numShapes = num;        }            // calls ObjectData.reset for each item in vector        public void reset(int w, int h) {            for (int i = 0; i < vector.size(); i++) {                ((ObjectData) vector.get(i)).reset(w, h);            }        }            // calls ObjectData.step for each item in vector        public void step(int w, int h) {            for (int i = 0; i < vector.size(); i++) {                ((ObjectData) vector.get(i)).step(w, h);            }        }                public void drawDemo(int w, int h, Graphics2D g2) {                for (int i = 0; i < vector.size(); i++) {                ObjectData od = (ObjectData) vector.get(i);                AlphaComposite ac = AlphaComposite.getInstance(                                       AlphaComposite.SRC_OVER, od.alpha);                g2.setComposite(ac);                g2.setPaint(od.paint);                g2.translate(od.x, od.y);                    if (od.object instanceof Image) {                    g2.drawImage((Image) od.object, 0, 0, this);                } else if (od.object instanceof TextData) {                    g2.setFont(((TextData) od.object).font);                    g2.drawString(((TextData) od.object).string, 0, 0);                } else if (od.object instanceof QuadCurve2D                         || od.object instanceof CubicCurve2D)                 {                    g2.setStroke(bs);                    g2.draw((Shape) od.object);                } else if (od.object instanceof Shape) {                    g2.fill((Shape) od.object);                }                g2.translate(-od.x, -od.y);            }        }                public Graphics2D createGraphics2D(int w, int h) {            Graphics2D g2 = null;            if (bimg == null || bimg.getWidth() != w || bimg.getHeight() != h) {                bimg = (BufferedImage) createImage(w, h);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -