📄 intcircleanimationview.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 + -