对于上一次的乌龟的设计不知道给位完成的怎么样,没有写出来也没有关系。下面我来展示一下设计的乌龟和代码

import java.awt.*;
public class Turtle{{public static void main(String[] args){Frame w = new Frame() ;w.setSize(1366, 768) ;w.setBackground(Color.LIGHT_GRAY);MyPanel mp = new MyPanel();w.add(mp);w.show();
}
class MyPanel extends Panel
{int x = 100, y = 400 ,x1 = 400 ,x2 = 700, x3 = 1000;int j1 = 400 , k1 = 100 ;int j2 = 400 , k2 = 100 ;int j3 = 400 , k3 = 100 ;int j4 = 400 , k4 = 100 ;public void paint(Graphics g){g.setColor(Color.getHSBColor(169, 40, 3));g.fillOval(x, y, 70, 100);g.setColor(Color.BLACK);g.fillOval(x+10, y+30, 10, 10);g.fillOval(x+50, y+30, 10, 10);g.setColor(Color.getHSBColor(169, 40, 3));g.fillOval(x, y+290, 60, 80);g.setColor(Color.LIGHT_GRAY);g.fillOval(x+20, y+300, 60, 80);g.setColor(Color.getHSBColor(169, 40, 3));g.fillOval(k1-85, j1+70, 70, 70);    100       g.setColor(Color.getHSBColor(169, 40, 3));g.fillOval(k2+85, j2+70, 70, 70); g.setColor(Color.getHSBColor(169, 40, 3));g.fillOval(k3-80, j3+235, 70, 70);       g.setColor(Color.getHSBColor(169, 40, 3));g.fillOval(k4+80, j4+235, 70, 70);g.setColor(Color.GREEN);g.fillOval(x-66, y+69, 200, 230);g.setColor(Color.black);g.drawOval(x-65, y+70, 200, 230);g.setColor(Color.black);//πÍ∏«g.drawLine(x+5, y+130, x+75, y+130);g.drawLine(x-10, y+82, x+5, y+130);g.drawLine(x+75, y+130, x+100, y+95);g.drawLine(x-67,y+200,x+135,y+200);g.drawLine(x+5,y+250,x+75,y+250);g.drawLine(x+5,y+250,x-20,y+278);g.drawLine(x+100,y+275,x+75,y+250);g.drawLine(x+40, y+70, x+40, y+300);}}

看一下在Eclipse里运行的结果

由于代码的实现很简单,所以博主没有写上备注,有不明白的地方可以来问博主。基本就是在paint这个方法里加一些图形和上色。
博主第一次做这个乌龟的时候觉得这个静止的乌龟不好玩,自学了监听方面的只是对这个代码进行立刻修改,楼主把代码放上,感兴趣的可以先提前去了解监听方面的知识

    import java.awt.*;
import java.awt.event.*;public class TurtleMove
{public static void main(String[] args){//设置窗体Frame w = new Frame() ;w.setSize(1366, 768) ;w.setBackground(Color.LIGHT_GRAY);//添加画布MyWuGuiPa mp = new MyWuGuiPa();w.add(mp);//注册键盘事件w.addKeyListener(mp) ;mp.addKeyListener(mp) ;//注册鼠标事件w.addMouseListener(mp) ;mp.addMouseListener(mp) ;//显示w.show() ;}}
class TurtleMove extends Panel implements KeyListener,MouseListener
{//定义乌龟起始位置int x = 100, y = 400 ,x1 = 400 ,x2 = 700, x3 = 1000;//定义乌龟四只脚的变量 j是脚的y轴变量用来控制上下移动 k是脚的x轴的变量用来控制左右移动int j1 = 400 , k1 = 100 ;int j2 = 400 , k2 = 100 ;int j3 = 400 , k3 = 100 ;int j4 = 400 , k4 = 100 ;//定义乌龟行动规则 int f = 0 ;public void paint(Graphics g){//乌龟的头g.setColor(Color.getHSBColor(169, 40, 3));g.fillOval(x, y, 70, 100);g.setColor(Color.BLACK);g.fillOval(x+10, y+30, 10, 10);g.fillOval(x+50, y+30, 10, 10);//龟尾巴g.setColor(Color.getHSBColor(169, 40, 3));g.fillOval(x, y+290, 60, 80);g.setColor(Color.LIGHT_GRAY);g.fillOval(x+20, y+300, 60, 80);//乌龟左上腿g.setColor(Color.getHSBColor(169, 40, 3));g.fillOval(k1-85, j1+70, 70, 70);//乌龟右上腿       100       g.setColor(Color.getHSBColor(169, 40, 3));g.fillOval(k2+85, j2+70, 70, 70);//乌龟左下腿      100    g.setColor(Color.getHSBColor(169, 40, 3));g.fillOval(k3-80, j3+235, 70, 70);//乌龟右下腿           g.setColor(Color.getHSBColor(169, 40, 3));g.fillOval(k4+80, j4+235, 70, 70);//龟盖g.setColor(Color.GREEN);g.fillOval(x-66, y+69, 200, 230);g.setColor(Color.black);g.drawOval(x-65, y+70, 200, 230);g.setColor(Color.black);//龟盖//龟纹g.drawLine(x+5, y+130, x+75, y+130);g.drawLine(x-10, y+82, x+5, y+130);g.drawLine(x+75, y+130, x+100, y+95);g.drawLine(x-67,y+200,x+135,y+200);g.drawLine(x+5,y+250,x+75,y+250);g.drawLine(x+5,y+250,x-20,y+278);g.drawLine(x+100,y+275,x+75,y+250);g.drawLine(x+40, y+70, x+40, y+300);}@Overridepublic void keyTyped(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void keyPressed(KeyEvent e) {if(e.getKeyCode() == KeyEvent.VK_UP&&j1>0){//定义乌龟向上移动 f==0时候 左上脚和右下脚向前东// f==1时  右上脚和左下脚向前动y = y - 10 ;if(f == 0){j1 = j1 - 20 ;j4 = j4 - 20 ;}if(f == 1){j2 = j2 -20 ;j3 = j3 -20 ;}if(j1 >= j2){f = 0 ;}if(j1 < j2){f = 1 ;}}if(e.getKeyCode() == KeyEvent.VK_DOWN&&j4<400){//定义乌龟向下移动 移动规则与向上移动一样y = y + 10 ;if(f == 0){j1 = j1 + 20 ;j4 = j4 + 20 ;}if(f == 1){j2 = j2 + 20 ;j3 = j3 + 20 ;}if(j1 <= j2){f = 0 ;}if(j1 > j2){f = 1 ;}}if(e.getKeyCode() == KeyEvent.VK_LEFT&&k1>80){//定义乌龟 向左移动 f==0时候 左上和左下脚向左移动//f==1时候 右上和右下向左移动x = x - 10 ;if(f == 0){k1 = k1 - 20 ;k3 = k3 - 20 ;}if(f == 1){k2 = k2 - 20 ;k4 = k4 - 20 ;}if(k1 >= k2){f = 0 ;}if(k1 < k2){f = 1 ;}}if(e.getKeyCode() == KeyEvent.VK_RIGHT&&k2<1200){//定义乌龟向右移动 移动规则和向左一样x = x + 10 ;if(f == 0){k2 = k2 + 20 ;k4 = k4 + 20 ;}if(f == 1){k1 = k1 + 20 ;k3 = k3 + 20 ;}if(k2 <= k1){f = 0 ;}if(k2 > k1){f = 1 ;}}repaint() ;}@Overridepublic void keyReleased(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseClicked(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mousePressed(MouseEvent e) {//定义鼠标点到哪里 乌龟就出现在哪里x = e.getX() ;y = e.getY() ;j1 = e.getY() ;j2 = e.getY() ;j3 = e.getY() ;j4 = e.getY() ;k1 = e.getX() ;k2 = e.getX() ;k3 = e.getX() ;k4 = e.getX() ;repaint() ;}@Overridepublic void mouseReleased(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseEntered(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseExited(MouseEvent e) {// TODO Auto-generated method stub}
}

博主想来想去最后还是自己把注释一行行的写上去了,各位可以拿去参考参考

Java图形界面基础案例-怎么画乌龟相关推荐

  1. Java 图形界面基础

    Java图形界面基础 当你开始验证自己的PC的JDK环境是否配置完成的时候有没有想过这个窗体是怎么做出来的呢? 用几句简单的Java语言就可以做出这样的窗体,不信我可以写给给位看. import ja ...

  2. java 图形界面设计,使用JPanel、JFrame 绘图,图形界面设计入门演示,各种主要绘图方法以及图片、文字插入

    那什么是JPanel?JFrame 又是什么呢?让我们先来了解一下他们的区别吧: JFrame是最底层,JPanel是置于其面上,同一个界面只有一个JFrame,一个JFrame可以放多个JPanel ...

  3. Java图形编程实验总结_实验二java图形界面编程2015级.doc

    实验二java图形界面编程2015级.doc 实验二JAVA图形界面编程一.实验目的熟悉JAVA运行环境,编程掌握JAVASWING组件的图形界面编程.二.实验环境微机,软件MYECLIPSE,JDK ...

  4. java界面布局举例,java图形界面实例

    java写一个图形程序,让数组输出在图形界面上 代码怎么写?别那么复杂的. 已把程序文件打包上传了,并附上运算结果图. import javax.swing.*;import java.awt.*;i ...

  5. java图形界面多线程_多线程编程、Java I/O系统和Java图形界面编程

    多线程编程: 一个正在运行的程序通常称为一个进程,每一个任务称为一个线程,中能够在一个程序内运行多线程的程序称为多线程程序. 线程与进程的区别:①每个进程都需要操作系统为其分配独立的内存空间: ②而同 ...

  6. Java图形界面开发利器WindowBuilder

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  7. java图形界面重写坐标_重写自由软件和计算机图形的历史

    java图形界面重写坐标 您还记得上世纪90年代初大多数屏幕保护程序都显示飞扬的3D金属徽标的日子吗? 你有一个吗? 在本文中,我想回顾一下过去,并简要回顾计算机图形学(CG)从研究实验室过渡到每个人 ...

  8. java图形界面UI设计——简单的计算器

    java图形界面UI设计--简单的计算器# 可以实现连续的输入: java图形界面UI设计--简单的计算器下载

  9. Java图形界面编程模拟ATM自助取款系统

    本人学习Java时一直想做一个图形界面的程序,所以利用闲暇时间,做了一个Java图形界面编程模拟ATM自助取款系统,界面简洁漂亮,基本功能ATM功能实现. 程序初始时 考号:123456 密码:123 ...

最新文章

  1. centos卸载harbor_【Harbor】Harbor镜像仓库的安装与历史版本镜像的清理
  2. C++迪杰斯特拉算法求最短路径
  3. ACM入门之【快速幂】
  4. 1968. [AHOI2005]约数研究【数论】
  5. Linux(shell)遍历目录删除指定文件,解决文件夹名称带空格问题
  6. 有向图强连通分量tarjan算法
  7. 【LeetCode笔记】2. 两数相加(JAVA、链表)
  8. c++如何禁用指定的键盘布局_Karabiner Elements for Mac 键盘键位自定义改键工具
  9. 决策报表服务器安装_无服务器流处理如何使决策更加容易
  10. 求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序
  11. as cast float server sql_SQL语言在数据工程(Data Engineering)中的运用(一)
  12. 摄像头实时帧率_能够侦测的摄像头,怎么选?
  13. vb 字符串长度_学习VB编程第5天 基础知识需要一点点积累
  14. 【去除教育】去除打印教育戳记插件
  15. 2022年上半年系统集成项目管理工程师上午真题及答案解析
  16. raid5两块硬盘掉线数据恢复-服务器磁盘阵列数据恢复方法
  17. visa支付—Springboot
  18. MYSQL统计收益排名
  19. 荣耀9青春版能刷鸿蒙系统吗,华为荣耀9青春版刷机教程_荣耀9青春版强刷升级更新系统包...
  20. 豆瓣新书速递数据爬取与简单数据处理 | 豆瓣爬虫 python pandas

热门文章

  1. 上班第一天,痛苦并快乐着
  2. Linux清除arp缓存
  3. 解决 Genymotion无法添加虚拟手机设备问题
  4. Hybrid开发原理分析和开发中常见问题
  5. 前端缓存 (http缓存 与 本地缓存)
  6. 小米VR-玩具版开箱试用
  7. Vue递归组件实现多级列表分类
  8. Python进行决策树和随机森林
  9. matlab解决迷宫问题,用matlab处理蚂蚁迷宫问题
  10. 树莓派 html5 屏幕尺寸,树莓派5寸显示屏使用教程