bouncingdrawing.java

来自「开源(Open Source)项目JHotDraw的文档和源程序」· Java 代码 · 共 47 行

JAVA
47
字号
/*
 * @(#)BouncingDrawing.java 5.2
 *
 */

package CH.ifa.draw.samples.javadraw;

import java.awt.*;
import java.util.*;
import CH.ifa.draw.framework.*;
import CH.ifa.draw.standard.*;
import CH.ifa.draw.util.Animatable;


public class BouncingDrawing extends StandardDrawing implements Animatable {
    /*
     * Serialization support.
     */
    private static final long serialVersionUID = -8566272817418441758L;
    private int bouncingDrawingSerializedDataVersion = 1;

    public synchronized Figure add(Figure figure) {
        if (!(figure instanceof AnimationDecorator))
            figure = new AnimationDecorator(figure);
        return super.add(figure);
    }

    public synchronized Figure remove(Figure figure) {
        Figure f = super.remove(figure);
        if (f instanceof AnimationDecorator)
            return ((AnimationDecorator) f).peelDecoration();
        return f;
    }

    public synchronized void replace(Figure figure, Figure replacement) {
        if (!(replacement instanceof AnimationDecorator))
            replacement = new AnimationDecorator(replacement);
        super.replace(figure, replacement);
    }

    public void animationStep() {
        Enumeration k = figures();
        while (k.hasMoreElements())
            ((AnimationDecorator) k.nextElement()).animationStep();
    }
}

⌨️ 快捷键说明

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