博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
绘制动画及动画循环练习
阅读量:6235 次
发布时间:2019-06-22

本文共 1802 字,大约阅读时间需要 6 分钟。

hot3.png

   今天,我照着书上练习了一下用java做一个小球缓慢下落的动漫演示。它是由一个TetrisPanelL类和一个MyWindow类来完成的所有代码如下:

package Demo;import java.awt.Color;import java.awt.Graphics;import javax.swing.JPanel;import com.sun.prism.Image;public class TetrisPanel extends JPanel implements Runnable{	//绘图线程类	public int ypos=-80;//小球左上角的纵坐标	//在类中添加如下连个私有成员	private Image iBuffer;	private Graphics gBuffer;	public TetrisPanel(){		//新建一个新线程		Thread t=new Thread(this);		//启动线程		t.start();	}		@Override	public void paint(Graphics g) {		// TODO Auto-generated method stub		//super.paint(g);将面板上原来画的东西擦掉		//先清屏否则原来画的东西仍在		g.clearRect(0, 0, this.getWidth(), this.getHeight());		g.setColor(Color.red);//设置小球颜色		g.fillOval(90, ypos, 80, 80);//绘制小球	}		@Override	public void run() {//重载run方法		// TODO Auto-generated method stub		while(true){//线程中的无限循环			try{				Thread.sleep(30);//线程休眠30秒			}catch(InterruptedException e){			}			ypos+=5;//修改小球左上角的纵坐标			if(ypos>=30)//小球离开窗口后重设左上角的纵坐标				ypos=-80;			repaint();//窗口重绘		}			}}

 

package Demo;import java.awt.Container;import java.awt.event.WindowAdapter;import javax.swing.JFrame;import com.sun.glass.events.WindowEvent;public class MyWindow extends JFrame{	MyWindow(){		this.setTitle("这是个测试窗口");		Container c=this.getContentPane();//获得面板容器		c.add(new TetrisPanel());		//设置窗口开始显示时距离屏幕左边400个像素点		//距离屏幕上边200个像素点		this.setBounds(400,200,300,300);		//设置窗口关闭按钮具有关闭整个程序功能		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		this.setVisible(true);	}		public static void main(String[] args) {		// TODO Auto-generated method stub		//创建窗口的实例DB,开始整个程序		MyWindow DB=new MyWindow();//创建主类对象		DB.addWindowListener(new WindowAdapter() {//添加窗口关闭方法			public void WindowClosing(WindowEvent e){				System.exit(0);			}		});	}}

运行结果:

一个红色小球以一定速度从上往下掉落,当小球掉到底部时将循环继续从上往下掉,只要不关闭程序,小球就重复下落过程。

转载于:https://my.oschina.net/lizupei/blog/777572

你可能感兴趣的文章
html5的web存储
查看>>
Android 输入法键盘和activity页面遮挡问题解决
查看>>
什么是LogDashboard?
查看>>
WM_COPYDATA+BHO+Qt实现进程间通信
查看>>
把文件或文件夹设置为受保护的操作系统文件或文件夹
查看>>
JConsole监控远程Tomcat服务器 遇到的坑
查看>>
TP 3.2.3 接入PHPMailer
查看>>
gcc降版本方法 - [学习]
查看>>
使用正则表达式,取得点击次数,函数抽离
查看>>
TensorFlow学习---入门(一)-----MNIST机器学习
查看>>
[LeetCode] Reverse Words in a String II
查看>>
[LeetCode] Find Peak Element
查看>>
appium ios环境搭建——iOS开发环境搭建
查看>>
20155222卢梓杰 课堂测试ch06补做
查看>>
20155222卢梓杰 实验五 MSF基础应用
查看>>
android分析之Thread类
查看>>
【总结整理】WebGIS基础
查看>>
linux(一)export的生命周期
查看>>
[转载].NET开发常用的10条实用代码
查看>>
用邻接表实现DFS和BFS
查看>>