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

📄 intcircleanimationview.java

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

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;

/**
 * 以圆形为背景,然后在圆形中间显示整数数值的方式展示整数数据
 * @author 周晓聪
 * @since 2007/7/20
 *
 */
public class IntCircleAnimationView extends IntAnimationView {
	// 在园形中显示整数数值的颜色,这种颜色最好是亮色。园形本身的颜色使用保存在
	// AnimationView 中的基本颜色,这种颜色最好用深色
	protected Color valueColor = Color.white;		
	protected int radius = 10;						// 园的半径
	
	public IntCircleAnimationView() { }
	public IntCircleAnimationView(int value) { super(value); }
	public IntCircleAnimationView(int value, Point pos) { super(value, pos); }
	public IntCircleAnimationView(int value, Point pos, Color color) {
		super(value, pos, color);
	}
	public IntCircleAnimationView(int value, Point pos, Color color, Color vColor) {
		super(value, pos, color);
		valueColor = vColor;
	}
	public IntCircleAnimationView(int value, Point pos, Color color, Color vColor, int radius) {
		super(value, pos, color);
		valueColor = vColor;
		this.radius = Math.max(radius, 10);
	}
	
	/**
	 * 返回显示整数数值的颜色
	 */
	public Color getValueColor() {
		return valueColor;
	}
	/**
	 * 设置显示整数数值的颜色
	 */
	public void setValueColor(Color valueColor) {
		this.valueColor = valueColor;
	}
	
	/**
	 * 返回圆形的半径
	 */
	public int getRadius() {
		return radius;
	}
	/**
	 * 设置圆形的半径
	 */
	public void setRadius(int radius) {
		this.radius = Math.max(radius, 10);
	}
	/**
	 * 返回圆形的高度,等于圆形的直径
	 */
	public int getHeight() {
		return 2*radius;
	}

	/**
	 * 以圆形为背景,在圆形中间显示整数数值的方式展示整数数据
	 * @param gc 展示该整数的图形上下文
	 */
	public void paint(Graphics gc) {
		if (!visible) return;		// 如果不可见则不绘制

		// 以基本颜色填充圆形,所填充的圆形尽量使得基本位置 position 在圆心位置
		gc.setColor(color);
		gc.fillArc(position.x-radius, position.y-radius, 2*radius, 2*radius, 90, 360);
		gc.setColor(valueColor);
		// 以显示整数数值的颜色画圆形的边以及在圆形中间显示整数数值
		gc.drawArc(position.x-radius, position.y-radius, 2*radius, 2*radius, 90, 360);
		// 下面尽量使得整数数值显示在园形的中间,但是要真正在中间还需要计算当前图形对象所使用的字体
		// 的宽度和高度信息,这里只是简单的实现,大概适合圆形半径 radius 在 20 至 40 之间的像素范围
		gc.drawString(value+"", position.x-radius/2, position.y+radius/4);
	}
}

⌨️ 快捷键说明

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