/**
  * @(#)fish.FishBean.java  2008-7-31  
  * Copy Right Information	: Tarena
  * Project					: fish
  * JDK version used		: jdk1.6.4
  * Comments				: 豆豆类
  * Version					: 1.0
  * Sr	Date		Modified By		Why & What is modified
  * 1.	2008-7-31 	小猪     		新建
  **/
package fish;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Timer;

 /**
 * 豆豆类
 * 2008-7-31
 * @author		达内科技[Tarena Training Group]
 * @version	1.0
 * @since		JDK1.6(建议) 
 * @author		Administrator
 */
public class FishBean implements ActionListener{

	/** 小鱼的位置x */
	public int posx = 190;
	/** 小鱼的位置y */
	public int posy = 190;
	/** 小鱼的大小,以size为半径画豆豆(圆)。 */
	public int size = 10;
	/** 小鱼的当前颜色 */
	private Color color = Color.MAGENTA;
	
	/** 小鱼的新颜色 */
	private Color newColor = Color.MAGENTA;
	/** 小鱼的旧颜色 */
	private Color oldColor = Color.GRAY;
	
	/** 小鱼消失时的闪烁时间 */
	public static int flickerTime = 350;
	/** 小鱼消失时的闪烁次数 */
	public static int filckerNum = 8;
	private int hasFileckedNum = 0;
	/** 小鱼消失时闪烁的定时器 */
	private Timer timer = null;
	
	/**
	 * 缺省构造函数。按位置(40,40),大小15,颜色Color.MAGENTA构造一个豆豆。
	 */
	public FishBean() {
		this(190,190,10,Color.MAGENTA,Color.GRAY);
	}
	
	/**
	 * 按照位置、大小、颜色构造一个豆豆类。
	 * @param posx 豆豆的水平坐标x。
	 * @param posy 豆豆的垂直坐标y。
	 * @param size 豆豆的大小。
	 * @param newColor 豆豆的颜色。
	 * @param oldColor 豆豆的旧颜色
	 */
	public FishBean(int posx,int posy,int size,Color newColor,Color oldColor) {
		this.posx = posx;
		this.posy = posy;
		this.size = size;
		this.newColor = newColor;
		this.oldColor = oldColor;
		this.color = newColor;
		timer = new Timer(flickerTime,this);
	}
	
	/**
	 * 移动豆豆到新的位置。
	 * @param posx 豆豆的新水平坐标x。
	 * @param posy 豆豆的新垂直坐标y。
	 */
	public void newPos(int posx,int posy){
		this.posx = posx;
		this.posy = posy;
	}
	
	/**
	 * 绘制豆豆。
	 * @param g 画笔
	 */
	public void paint(Graphics g){
		Color c = g.getColor();
		g.setColor(color);
		g.fillOval(posx, posy, size, size);
		g.setColor(c);
	}
	
	/**
	 * 停止Timer。
	 */
	public void stopTimer(){
		color = newColor;
		timer.stop();
		hasFileckedNum = 0;
	}
	
	/**
	 * 启动Timer。
	 */
	public void runTimer(){
		timer.start();
	}
	
	/**
	 * 定时器事件。
	 */
	public void actionPerformed(ActionEvent e) {
		hasFileckedNum++;
		if(color.equals(newColor) || color==newColor)
			color = oldColor;
		else
			color = newColor;
		//定时器运行的次数完成时,停止定时器。
		if(hasFileckedNum==filckerNum && timer.isRunning()){
			stopTimer();
		}
	}
	
	/**
	 * Timer定时器是否运行中。
	 * @return 返回Timer是否运行中。
	 */
	public boolean timerIsRunning(){
		return timer.isRunning();
	}
}
最近下载更多
520131  LV5 2023年6月27日
微信网友_6438918626938880  LV1 2023年4月19日
酒非儿  LV6 2023年2月22日
xiaokang1  LV10 2023年1月11日
qwewrouy  LV1 2022年5月29日
云水幕  LV1 2022年1月15日
978806986  LV16 2021年11月30日
1584160851  LV1 2021年8月6日
Guan008  LV4 2021年6月29日
养乐多  LV3 2021年4月25日
最近浏览更多
米继宝是憨憨  LV4 1月29日
pangzhihui  LV14 2023年12月14日
15066671558 2023年10月10日
暂无贡献等级
18176866431  LV4 2023年8月28日
520131  LV5 2023年6月27日
LITIANYU084414  LV11 2023年6月16日
17683946472  LV9 2023年6月8日
海棠花瘦  LV9 2023年5月25日
luo110012  LV9 2023年5月15日
微信网友_6438918626938880  LV1 2023年4月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友