`
kong0itey
  • 浏览: 299800 次
社区版块
存档分类
最新评论

[原创]仿QQ的窗体振动特效

    博客分类:
  • java
 
阅读更多
	/**
	 * 
	 * @param window
	 *            振动的窗体
	 * @param offset
	 *            振动时的偏移距离
	 * @param times
	 *            振动次数
	 * @param lastTime
	 *            振动特效的持续时间(单位是毫秒)
	 */
	public void shake(Window window, int offset, int times, int lastTime) {
		// 一个来回算1次
		times *= 5;
		// 计算振动周期
		int interval = lastTime / times;
		// 记住初始位置
		int ox = window.getX();
		int oy = window.getY();
		// 开始振动
		for (int n = 0; n < times; n++) {
			int x = ox;
			int y = oy;
			switch (n % 5) {
			case 0:
				x -= offset;
				y -= offset;
				break;
			case 1:
				x += offset;
				y -= offset;
				break;
			case 2:
				x += offset;
				y += offset;
				break;
			case 3:
				x -= offset;
				y += offset;
				break;
			case 4:
				break;
			default:
				break;
			}
			window.setLocation(x, y);
			try {
				// 最后一次振动完以后,不睡眠
				if (n < times - 1)
					Thread.sleep(interval);
			} catch (InterruptedException e1) {
				e1.printStackTrace();
			}
		}
		// 复位
		if (window.getX() != ox || window.getY() != oy) {
			window.setLocation(ox, oy);
		}
	}

	//使用方法
	//shake(jFrame1, 3, 10, 1500);
分享到:
评论
1 楼 dzh692817 2011-09-20  
能完整的写出来吗。。。。。

相关推荐

Global site tag (gtag.js) - Google Analytics