Swing Panel 动画

一、实现原理:给panel添加两张图片,然后启动一个线程,不断的去重画这个panel,重画的过程中,改变这两张图片Y轴的坐标,这样就出现了图片滚动的效果。

二、代码:

package com.jack;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JPanel;
import javax.swing.border.SoftBevelBorder;

/**
 *
 * @author laughing
 *
 * @date 2014年11月16日 下午7:58:11
 */
public class GamePanel extends JPanel implements Runnable {
	private int		y		= 0;
	private int		y1		= -480;

	SoftBevelBorder	border	= new SoftBevelBorder(1, Color.white, Color.white);

	public GamePanel() {
		setBorder(border);
	}

	/*
	 * (non-Javadoc)
	 *
	 *
	 *
	 * @see javax.swing.JComponent#paintComponent(java.awt.Graphics)
	 */
	@Override
	protected void paintComponent(Graphics g0) {
		// TODO Auto-generated method stub
		super.paintComponent(g0);
		Graphics2D g = (Graphics2D) g0;

		try {
			Image image = ImageIO.read(this.getClass()
											.getResource("../../images/map.png"));
			Image image1 = ImageIO.read(this.getClass()
											.getResource("../../images/map_1.png"));
			if (image != null) {
				g.drawImage(image, 5, y, this);
				g.drawImage(image1, 5, y1, this);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	/*
	 * (non-Javadoc)
	 *
	 * @see java.lang.Runnable#run()
	 */
	@Override
	public void run() {
		// TODO Auto-generated method stub
		while (true) {
			if (y == 480) {
				y = 0;
			} else {
				y += 10;
			}

			if (y1 == 0) {
				y1 = -480;
			} else {
				y1 += 10;
			}
			try {
				Thread.sleep(500);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			repaint();
		}
	}
}
package com.jack;

import java.awt.GridLayout;
import java.awt.List;

import javax.swing.JFrame;

/**
 *
 * @author laughing
 * @date 2014年11月16日 下午8:11:39
 */
public class Main extends JFrame {

	GamePanel	leftPanel	= new GamePanel();
	GamePanel	centerPanel	= new GamePanel();
	List		chartList	= new List();

	public Main() {
		setSize(800, 480);
		setLayout(new GridLayout(1, 3));

		getContentPane().add(leftPanel);
		getContentPane().add(centerPanel);
		getContentPane().add(chartList);
		new Thread(leftPanel).start();
		new Thread(centerPanel).start();
		setVisible(true);
		setResizable(false);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLocationRelativeTo(this);
	}

	public static void main(String args[]) {
		new Main();
	}

}

三、代码下载

时间: 2024-10-14 10:36:54

Swing Panel 动画的相关文章

jQuery Moblile Demos学习记录Panel

jQuery Moblile Demos学习记录Panel 11. 二 / Jquery Mobile / 没有评论 本文来源于www.ifyao.com禁止转载!www.ifyao.com 我就简短的总结一下: Panel位置:data-position属性控制:值:left,right, 显示方式:data-display属性   值:reveal默认在页面之下,overlay页面上,push和页面统一,将页面推开. Panel应该放在header,content,footer之前或者之后,

jQuery动画和遍历

一.动画 1. 动画 1. 三种方式显示和隐藏元素 1. 默认显示和隐藏方式 1. show([speed,[easing],[fn]]) 1. 参数: 1. speed:动画的速度.三个预定义的值("slow","normal", "fast")或表示动画时长的毫秒数值(如:1000) 2. easing:用来指定切换效果,默认是"swing",可用参数"linear" * swing:动画执行时效果是

jQuery学习02

1. jQuery操作样式1.1 使用jQuery设置css样式1.1.1 设置单个样式jQueryobj.css(name,value);设置需要更改的属性名和属性值.1.1.2 设置多个样式jQueryobj.css(obj);obj:{name:value,name:value,...}由多个属性名和属性值组成的键值对组成的对象.1.1.3 获取样式jQueryobj.css(name);获取的是jQuery对象中第一个元素的对应属性的值.1.2 使用jQuery设置class名1.2.1

《JQuery实战》第4-9章

第四章 事件 命令 定义 参数 返回 bind(eventType,data,listener) 在包装集的所有元素上建立函数,作为指定事件类型的事件处理程序 eventType是事件类型的名称:data(可选)是调用者提供的数据:listener是函数 包装集 one(eventType,data,listener) 在包装集的所有元素上建立函数,作为指定事件类型的事件处理程序.一旦执行,事件处理程序就被自动删除 eventType是事件类型的名称:data(可选)是调用者提供的数据:list

关于使用flying-saucer-pdf,实现xhtml2pdf

@author Guoguo 2013.11.24 关于flying-saucer-pdf 是一个XML/CSS渲染器,flying-saucer-pdf工具以XML标准文件作为输入,CSS进行排版.样式修饰,输出a Swing Panel.图片.PDF格式文档.支持XHTML 1.0 (strict).HTML格式,CSS 2.1 .谈到CSS,要注意屏幕样式和平面媒体样式(即打印样式)的区别: flying-saucer-pdf依赖于itext 应用场景 在网站上即时下载PDF 局限问题 资

JQuery笔记总结------事件细节、JQ进阶常用方法

引入jQuery: <script src="./K1/Tool/jquery-3.1.1/jquery-3.1.1.min.js"></script> 引入CSS: <link rel="shortcut icon" type="image/x-icon" href="./images/icon.ico"> <link rel="stylesheet" type=

JQuery的基本操作及案例

jQuery是一个快速.简洁的JavaScript框架,本质上就是一些js文件,封装了js的原生代码. 一.jQuery的DOM操作 1. 内容操作             1. html(): 获取/设置元素的标签体内容   <a><font>内容</font></a>  --> <font>内容</font>             2. text(): 获取/设置元素的标签体纯文本内容   <a><fon

jQuery简易教程

jQuery jQuery基础 1.简介 jQuery是一个JavaScript框架.能够简化JS开发 封装了js的原生代码,本质上还是js文件. 2.快速入门 jQuery版本选择 目前jQuery有三个大版本: 1.x:兼容ie678,使用最为广泛的,官方只做BUG维护,功能不再新增.因此一般项目来说,使用1.x版本就可以了, 2.x:不兼容ie678,很少有人使用,官方只做BUG维护,功能不再新增.如果不考虑兼容低版本的浏览器可以使用2.x, 3.x:不兼容ie678,只支持最新的浏览器.

Java Swing 动画(二)

一.动画效果:实现了飞机飞行的动画效果,也实现了飞机的移动. 二.实现原理: 1.飞机飞行 的效果:其实也还是重写paintComponent,按照一定的时间间隔更换图片就有了飞行的效果,动画就是更换图片. 2.移动飞机:实现KeyListener这个接口,这个接口可以接收键盘的事件.用这个面板容器去监听些事件. 三.代码: package com.jack; import java.awt.GridLayout; import java.awt.List; import javax.swing