Java语言制作动画
为了使制作出来的满天星更加好看,采用随机数产生,对于产生的位置采用二维数组进行定义、
为了使动画动起来,通过改变横纵坐标的大小来实现(写这篇的目的是为了证明Java不是枯燥无味的)
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.util.Random;import javax.swing.JPanel;/*** 画布类:JPanel* @author Administrator**/
public class MyJPanel extends JPanel implements Runnable{//定义50个星星的坐标int[] x=new int[70];int[] y=new int[70];//弹幕效果String[] strArr= {"皆是遗憾","想见你","巅峰相见"};int[] strx=new int[strArr.length];int[] stry=new int[strArr.length];//全局变量int x1=160;//构造方法public MyJPanel() {Random rand=new Random();//随机数for(int i=0;i<x.length;i++) {x[i]=rand.nextInt(1200);y[i]=rand.nextInt(600);}for(int i=0;i<strArr.length;i++) {strx[i]=rand.nextInt(1200);stry[i]=rand.nextInt(600);}new Thread(this).start();}//重写//Graphics g:画笔@Overridepublic void paint(Graphics g) {// TODO Auto-generated method stubsuper.paint(g);//修改画布背景this.setBackground(Color.darkGray);g.setColor(Color.BLACK);Font font1=new Font("宋体",Font.BOLD,40);g.setFont(font1);g.drawString("予你姗姗而来", x1, 400);g.setColor(Color.BLACK);Font font2=new Font("楷体",Font.BOLD,40);g.setFont(font2);for(int i=0;i<strArr.length;i++) { g.drawString(strArr[i], strx[i], stry[i]);}//画月亮g.setColor(Color.WHITE);g.fillOval(100, 100, 200, 200);g.setColor(Color.darkGray);g.fillOval(x1, 100, 200, 200);//画一颗星//代码格式化:ctrl+I ctrl+shift+Ffor(int i=0;i<x.length;i++) {//0-255int red=(int) (Math.random()*256);int green=(int) (Math.random()*256);int blue=(int) (Math.random()*256);Color color=new Color(red,green,blue); g.setColor(color);//颜色Font font=new Font("宋体",Font.BOLD,10);g.setFont(font);g.drawString("*", x[i], y[i]);}}@Overridepublic void run() {// TODO Auto-generated method stub
// System.out.println("嘿嘿");while(true) {x1=x1-2;if(x1<=0) {x1=1200;}for(int i=0;i<x.length;i++) {x[i]=x[i]-5;if(x[i]<=0)x[i]=1200;}for(int i=0;i<y.length;i++) {y[i]=y[i]-2;if(y[i]<=0)y[i]=600;}for(int i=0;i<strArr.length;i++) {stry[i]=stry[i]-2;if(stry[i]<=0)stry[i]=600;}try {Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}repaint();//重绘,重复调用paint方法}}
}
import javax.swing.JFrame;/*** java swing:* 窗体类:JFrame* */
public class MyJFrame extends JFrame{//构造方法:方法名与类名相同。没有任何返回值类型//作用:初始化public MyJFrame() {//this;指代当前类对象this.setTitle("所望星辰皆不是你");//设置窗体的宽和高this.setSize(1200, 600);//显示居中this.setLocationRelativeTo(null);//优化一下,退出窗体的时候,关闭进程this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//显示可见this.setVisible(true);//创建画布对象MyJPanel mj=new MyJPanel();//将画布添加到窗体上this.add(mj);}//主方法:程序的入口public static void main(String[] args) {new MyJFrame();}
}
Java语言制作动画相关推荐
- java可以制作动画么,Java:如何避免仅制作形状的动画(没有图像...
嗨,我正在阅读Ian Cinnamon撰写的"为邪恶的天才编程视频游戏"一书.在其中一个项目中,他解释了如何为赛车游戏创建动画.我在下面编写了一个简单的代码(删除了"几乎 ...
- 利用Java语言制作关机小程序
本程序用到了Java的图形化界面,运行后弹出一个方框窗口,文本框下方是提示,看清提示后可以输入英文大/小写答案,若输入出错,则在60秒后关机,若在此期间,改窗口丢失焦点,则弹出提示框,并在15秒后关机 ...
- java可以制作动画么_java – 如何为陀螺制作动画?
物体旋转的轴的旋转称为 Precession.旋转顶部运动需要2次旋转: >物体围绕其内轴旋转(与红色手柄平行). >围绕静态轴旋转其中一个内部轴(在本例中为z). 从表面上看,你需要2个 ...
- Java语言之动画的简单入门学习
什么是 SVG? Google 在 Android5.X 中增加了对 SVG 矢量图形的支持,可以用来创建高效率的动画, 所以我们先来了解一下 SVG 的定义: 可伸缩矢量图形(Scalable Ve ...
- Java语言制作吃豆人游戏
(此项目源码已上传至Github网站,网址为GitHub - Ran-a/Pac-man-yar) 1 游戏界面 游戏的角色分别是追赶者和吃豆人,玩家使用方向键来控制吃豆人的运动方向并吃食物,将食物 ...
- java代码制作动画
本代码需要配置javafx后即可使用,Javafx配置可以参考百度. 在Eclipse下运行程序,自己下载图片更改代码中图片的位置和照片名即可. 代码如下 import javafx.animatio ...
- 如何用java制作动画_如何制作动画(java实现动画的代码)
如何制作动画(java实现动画的代码)内容如下 回答一:AE用于制作mg动画,操作确实有些复杂,技术要求也高,但不得不承认它是个神器,可以创建各种吸引人的动态图形和视觉效果 当然,现在网上也有一些比较 ...
- 易语言制作计算软件简单步骤_【软件工具】快速制作动画式微课,就是这么简单...
点击上方蓝字 励展集团 关注并设为星标 动画式微课能够呈现出超出文字.语言外的演示效果.在微课中加入动画,能够让课程内容更生动活泼:用动画人物形象替代教师.学生角色,也能模拟真实教学场景,设置教 ...
- java语言的诞生日是_【logofree】JAVA语言诞生日百度LOGO在线制作
Java语言诞生日百度LOGO创意说明 5月23日是JAVA语言诞生的日子.我们制作了 一款有趣的互动来纪念这一天.LOGO是整个游戏的入口,也是JAVA之父高斯林的办公桌.复古的电脑以及电话机体现了 ...
最新文章
- 直播报名 | NVIDIA公开课:Style-Gan的架构与实现
- 索引文件核心头文件定义
- 几种常用控件的使用方法
- hdu 4970 Killing Monsters(数学题)
- 加载geojson面数据_地理数据可视化
- python爬虫下载重试_python爬虫多次请求超时的几种重试方法(6种)
- linux内核移植imx8,iMX8模块Ubuntu移植
- 学习统计学之非参数检验
- 搜狗微信公众号文章搜索器---网赚必备工具
- echarts实现左右滑动
- awk、ruby计算总分排名,相同总分显示同一名次
- VCS+Verdi 安装过程遇到的问题-CentOS7
- 李沐华:变革前夜的券商集中交易系统
- 结构光、双目、ToF——三种3D技术对比
- Django之MTV
- 外贸员的日常工作分享
- 如何在win 10 家庭版上安装日语语言包
- Mysql 查询指定数据在查询数据列表中排名问题
- deploy path /代表什么意思
- Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a17_正反转可控直流电机