您的位置:首页 > 其它

通过Graphics对象来实现动画效果

2014-02-23 19:07 225 查看
通过Graphics对象来实现动画效果,原创不易,转载请注明出处!(需要下载源码在文章后面附有!)



[java] view
plaincopy





package com.zuidaima.animate;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Insets;

import java.util.Timer;

import java.util.TimerTask;

import javax.swing.JFrame;

public class Animate extends JFrame {

private static int DELAY = 100;

Insets insets;

Color colors[] = { Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN,

Color.BLUE, Color.MAGENTA };

public void paint(Graphics g) {

super.paint(g);

if (insets == null) {

insets = getInsets();

}

// Calculate each time in case of resize

int x = insets.left;

int y = insets.top;

int width = getWidth() - insets.left - insets.right;

int height = getHeight() - insets.top - insets.bottom;

int start = 0;

int steps = colors.length;

int stepSize = 360 / steps;

synchronized (colors) {

for (int i = 0; i < steps; i++) {

g.setColor(colors[i]);

g.fillArc(x, y, width, height, start, stepSize);

start += stepSize;

}

}

}

public void go() {

TimerTask task = new TimerTask() {

public void run() {

Color c = colors[0];

synchronized (colors) {

System.arraycopy(colors, 1, colors, 0, colors.length - 1);

colors[colors.length - 1] = c;

}

repaint();

}

};

Timer timer = new Timer();

timer.schedule(task, 0, DELAY);

}

public static void main(String args[]) {

Animate f = new Animate();

f.setSize(200, 200);

f.show();

f.go();

}

}

完整代码下载地址:http://www.zuidaima.com/share/1550463399660544.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: