老师让我们画一幅鱼在水中游动的图,完成了之后我又添加了一点天空啊山峰啊太阳啊小船啊,感觉挺有意思的。本来还想画云和鸟的,时间关系就没画了。

代码其实也就是画些圆和矩形不断的在那儿鼓捣,也就没添加注释了。

下面是截图:

下面是代码:

首先是框架的代码:

package day05;import javax.swing.JFrame;public class FishFrame {public static void main(String[] args) {JFrame frame=new JFrame();frame.setSize(1000,800);frame.setTitle("海底世界");frame.setLocation(0,0);FishPanel panel =new FishPanel();frame.add(panel);panel.startRun();frame.setVisible(true);}}

接着是面板的代码:

package day05;import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;import javax.swing.JPanel;public class FishPanel extends JPanel{//鱼的坐标int []x_fish={0,100,230,260,290,370,600,700,750,870};int []y_fish={0,10,50,120,0,-50,-30,20,-40,-60};//波浪的坐标int []x_wave=new int[50];int []y_wave=new int[50];//气泡的坐标int []x_air=new int[40];int []y_air=new int[40];int a=200;Random ran=new Random();public FishPanel(){for(int i=0;i<50;i++){x_wave[i]=ran.nextInt(1000);y_wave[i]=ran.nextInt(800);}for(int i=0;i<20;i++){x_air[i]=ran.nextInt(1000);y_air[i]=ran.nextInt(800);}}public void paint(Graphics g){super.paint(g);this.setBackground(new Color(22,240,240));paintFish(g);//画鱼paintGrass(g);//画草paintWave(g);//画波浪paintAir(g);//画气泡g.setColor(Color.white);g.fillRect(0, 0, 1000, 300);//画山峰g.setColor(new Color(99,85,66));g.fillArc(800, 100, 400, 400, 90, 90);g.setColor(Color.yellow);g.fillArc(20, 20, 100, 100, 0, 360);paintShip(g);//画船}public void startRun(){new Thread(){public void run(){while(true){for(int i=0;i<10;i++){x_fish[i]++;  if(x_fish[i]>1000){x_fish[i]=-100;} }for(int i=0;i<40;i++){x_air[i]++;y_air[i]-=1;if(x_air[i]>1000){x_air[i]=-100;}if(y_air[i]<-100){y_air[i]=800;}}for(int i=0;i<50;i++){x_wave[i]--;if(x_wave[i]<0){x_wave[i]=1000;}}a+=2;if(a>1100){a=-100;}try {sleep(10);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}repaint();}}}.start();}public void paintFish(Graphics g){for(int i=0;i<10;i++){g.setColor(Color.yellow);g.fillArc(x_fish[i]-25,y_fish[i]+ 500, 100, 50, -90, 180 );g.setColor(new Color(22,240,240));g.fillArc(x_fish[i]-10, y_fish[i]+500, 50, 50, 0, 360);g.setColor(Color.yellow);g.fillArc(x_fish[i]+15, y_fish[i]+500, 100, 50, 155, 45);g.setColor(Color.black);g.fillArc(x_fish[i]+50, y_fish[i]+515, 10, 10, 0, 360);g.setColor(Color.white);g.fillArc(x_fish[i]+53, y_fish[i]+516, 5, 5, 0, 360);}}public void paintGrass(Graphics g){g.setColor(new Color(35,204,52));g.fillArc(0, 600, 200, 200, 0, 360);g.fillArc(100, 700, 200, 200, 0, 360);g.fillArc(190, 580, 200, 300, 0, 360);g.setColor(new Color(22,240,240));g.fillArc(-20, 600, 200, 200, 0, 360);g.fillArc(210, 600, 200, 200, 0, 360);}public void paintWave(Graphics g){g.setColor(Color.white);for(int i=0;i<50;i++){g.drawString("~~~~~~~~~~~~~~~~", x_wave[i], y_wave[i]);}}public void paintAir(Graphics g){g.setColor(Color.white);for(int i=0;i<40;i++){g.drawArc(x_air[i], y_air[i], 40, 40, 0, 360);g.fillArc(x_air[i]+10, y_air[i]+10, 5, 5, 0, 360);g.drawArc(x_air[i]-20, y_air[i]+50, 30, 30, 0, 360);g.fillArc(x_air[i]-10, y_air[i]+60, 5, 5, 0, 360);g.drawArc(x_air[i]-20, y_air[i]+100, 10, 10, 0, 360);g.fillArc(x_air[i]+10, y_air[i]+10, 5, 5, 0, 360);}}public void paintShip(Graphics g){g.setColor(Color.red);g.fillRect(a, 200, 10, 50);g.fillRect(a, 250, 100, 50);g.fillArc(a-50, 200, 100,100, 180, 90);g.fillArc(a+50, 200, 100,100, -90, 90);}
}

java小程序-画一幅海底世界的图相关推荐

  1. 用python将图片变为油画_Python也能成为毕加索?我用Python给小姐姐画了幅油画

    原标题:Python也能成为毕加索?我用Python给小姐姐画了幅油画 小编的舍友最近交了一个女朋友,是念艺术系的,擅长画画!长的好看又漂亮,舍友经常在我耳边吹嘘,女朋友画的油画多么漂亮. 哎...经 ...

  2. java小程序源代码,详细说明

    零基础的小白,如何学好Java?要多动手实践学习Java就像学习数学一样,在懂得理论知识后,一定要实践.学习Java不能搭便车,有些时候,句子和语法看起来很简单,但是亲自实践起来却总有自己不知道的知识 ...

  3. Java小程序之球球大作战(基于Java线程实现)

    Java小程序之球球大作战(基于Java线程实现) 一.游戏基本功能: 1.自己的小球可以随着鼠标的移动而改变坐标: 2.敌方小球不断的在界面中移动 3.当检测到敌方小球相互碰撞时,小球会弹开 4.当 ...

  4. Java小程序——简单五子棋(人机对战)

    有关五子棋人人对战的代码,以及其他一些我想说的话请参考 Java小程序 -- 简单五子棋_如切如磋,如琢如磨-CSDN博客_java小程序 由于某些原因,这里我给出的AI算法算是比较简单的,所以导致了 ...

  5. Java小程序之简易网络画板

    Java小程序之简易网络画板 一.前言: Java是一门网络编程语言,强大的网络可以让数据进行传送:今天,我们就小试牛刀,看看Java是如何进行网络传输数据的: 二.项目分析: 1.功能需求: 我们前 ...

  6. java 获取文件所在的文件夹_带你0基础编写一个Java小程序,领略Java程序从编写到编译再到运行的全流程...

    在学习Java之前我们需要先认识下什么是计算机语言?计算机语言又有哪些分类?在了解这些后对我们理解学习帮助是很大的. 要知道计算机语言是人与计算机之间进行信息交流沟通的一种特殊语言,又分为机械语言.汇 ...

  7. java小程序之学生信息_java小程序之学生信息录入界面

    小程序我的项目下载链接:点击打开链接 因为这学期比赛太多,蓝桥杯,团体程序设计大赛,ACM省赛等原因基本这学期的课程都没上,比赛完后开始去上课,java老师让用java写一个学生信息录入界面,把界面中 ...

  8. 【开发日常】【Java】Java小程序汽车租赁

    <Java小程序--汽车租赁> 1.描述:刚学Java写的小程序,用到类的继承,多态,abstract抽象方法. 2.工具:eclipse.exe 3.功能:选择子类(轿车 / 客车) 选 ...

  9. Wifi热点java_用笔记本电脑开启热点Java小程序

    用笔记本电脑开启热点Java小程序是一条命令设置笔记本成无线热点, 制作"开启无线热点工具,这个小工具实际上是用java来执行cmd命令来完成操作,当然也可以反射jar里边的字节码文件. 使 ...

最新文章

  1. android xUtils的使用
  2. Svchost.exe病毒
  3. 气象gis 解决方案_杜邦可持续解决方案全方位智能化应急管理系统解决方案
  4. SLAM优化位姿时,误差函数的雅可比矩阵的推导。
  5. [学习笔记]03.字符串的扩展
  6. 【ElasticSearch】使用Docker安装ElasticSearch、基本增删改查使用
  7. 南开大学c语言试题,南开大学二级C语言试题库,共71页
  8. 腾讯云linux vnc端口,用腾讯云手把手教你用VNC搭建Ubuntu可视化界面(一)
  9. java web 密码修改,【67彩手机客户端】-平台网站
  10. 【LeetCode】剑指 Offer 51. 数组中的逆序对
  11. Qt4_写TCP客户/服务器应用程序
  12. 14.bash(2) 与 环境变量
  13. 山地车的结构及骑行注意事项
  14. 各个城市对应的code码
  15. 京东 按时上下班被开除,国内IT业惨状
  16. 运动蓝牙耳机哪个品牌好,五款运动专业户必备的耳机推荐
  17. 蓝牙突然消失,ubuntu连接音箱没有声音问题
  18. 新手GPU详细配置步骤
  19. 硅谷码农35岁危机:Java之父也找不到工作
  20. IOS证书制作,最简单的在线制作流程

热门文章

  1. Web设计中最常用的10种色调以及示例演示
  2. 紧急通知,1秒下达给员工 | 巴别鸟 V5.0上线
  3. Python-数据处理
  4. MobPush for Flutter
  5. 2012情人节语录1
  6. 【Unity】Obi插件系列(一)—— 总览、Actors与Solvers
  7. 睡个“好”觉,还真是有益身心胖瘦的
  8. 9343拆机 xps13_《拆机Pa》十二期 第二代XPS 13是进步还是退步
  9. 【华人学者风采】俞汝勤 湖南大学
  10. 一篇文章搞懂php文件系统基本操作