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

📄 animator.java

📁 用JAVA实现排序等简单算法的演示
💻 JAVA
字号:
package graphicAnimation;

import java.awt.Graphics;

/**
 * 算法演示器的基类,维持该算法演示器绘制的内容是否可见,以及该算法演示器所使用的演示区域和动画驱动器
 * 等基本信息
 * @author Administrator
 *
 */
public abstract class Animator implements PainterHelper {
	protected boolean visible = true;						// 算法演示器绘制的内容是否可见
	protected AnimationArea area = null;					// 算法演示器使用的演示区域
	protected AnimationDriver animationManager = null;		// 算法演示器使用的动画驱动器
	
	public Animator() { }
	public Animator(AnimationArea area) { 
		this.area = area; 
	}
	public Animator(AnimationDriver animationManager) { 
		this.animationManager = animationManager; 
	}
	public Animator(AnimationArea area, AnimationDriver animationManager) {
		this.area = area;
		this.animationManager = animationManager;
	}
	
	/**
	 * 返回所使用动画驱动器
	 */
	public AnimationDriver getAnimationManager() {
		return animationManager;
	}
	/**
	 * 设置所使用动画驱动器
	 */
	public void setAnimationManager(AnimationDriver animationManager) {
		this.animationManager = animationManager;
	}
	/**
	 * 返回所使用演示区域
	 */
	public AnimationArea getAnimatorArea() {
		return area;
	}
	/**
	 * 设置所使用的演示区域
	 * @param area
	 */
	public void setAnimationArea(AnimationArea area) {
		this.area = area;
	}

	/**
	 * 隐藏演示器所绘制的内容
	 */
	public void hide() { visible = false; }
	/**
	 * 使演示器所绘制的内容可见
	 */
	public void show() { visible = true; }

	/**
	 * 延迟 ms 毫秒
	 */
	public static void sleep(long ms) {
		if (ms <= 0) return;
		try {
			Thread.sleep(ms);
		} catch (Exception exc) {
			exc.printStackTrace();
		}
	}

	/**
	 * 在演示区域上绘制演示器所需要绘制的内容,由具体的演示器实现
	 */
	public abstract void paint(Graphics gc);
	
	/**
	 * 如果设置了演示区域,则调用演示区域的 repaint() 方法重新绘制该区域
	 *
	 */
	public void update() {
		if (area != null) area.repaint();
	}
}

⌨️ 快捷键说明

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