java画乌龟

java画乌龟,第1张

首先,手动画一个小乌龟,如下:

然后,按照Java绘图基本步骤一步步来。

swing 编程步骤:

1. 继承JFrame

2. 定义组件

3.创建组件(构造函数)

4.添加组件

5.对窗体设置

6.显示窗体

最终效果如下:

代码如下:

/** 

 * 功能:画一个乌龟 

 */  

  

package com.test1  

  

import java.awt.*  

  

import javax.swing.*  

public class MyTortoise  extends JFrame{  

    MyPanel2 mp = null  

    //构造函数  

    public MyTortoise(){  

        mp = new MyPanel2()  

          

        this.add(mp)  

          

        this.setTitle("小乌龟,丑丑哒")  

        this.setSize(400,300)  

        this.setVisible(true)  

        this.setLocation(300,200)  

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)  

    }  

              

    public static void main(String[] args) {  

        MyTortoise mtg = new MyTortoise()  

    }     

}  

  

//我的面板。只有JPanel有画图方法,JFrame没有,故必须在JFrame中添加JPanel  

class MyPanel2 extends JPanel{  

    //定义一个乌龟  

    Tortoise t = null  

      

    //构造函数  

    public MyPanel2(){    

        t = new  Tortoise(100,100)  

    }  

      

    //画乌龟  

    public void drawTortoise(int x, int y, Graphics g){  

        //1.画脸  

        g.setColor(Color.green)  

        g.fillOval(x+60, y, 30, 15)  

        //2.画左眼  

        g.setColor(Color.black)  

        g.fillOval(x+65, y+3, 5, 5)  

        //3.画右眼  

        g.fillOval(x+78, y+3, 5, 5)  

        //4.画脖子  

        g.setColor(Color.green)  

        g.fillOval(x+70, y, 10, 42)  

        //5.画乌龟壳  

        g.setColor(Color.red)  

        g.fillOval(x+40, y+40, 70, 100)  

        //6.画左上脚  

        g.setColor(Color.green)  

        g.fillOval(x+15, y+60, 30, 10)  

        //7.画右上脚  

        g.fillOval(x+105, y+60, 30, 10)  

        //8.画左下脚  

        g.fillOval(x+15, y+110, 30, 10)  

        //9.画右下脚  

        g.fillOval(x+105, y+110, 30, 10)  

        //10.画尾巴  

        g.setColor(Color.black)  

        g.drawLine(x+70,y+140,x+130,y+210)  

        g.drawOval(x+95, y+150, 30, 30)  

    }  

  

     

    //覆盖JPanel的paint方法  

    //Graphics 是绘图的重要类。你可以把他理解成一只画笔  

    public void paint(Graphics g){  

            //1.调用父类函数完成初始化任务  

            //这句话不能少  

            super.paint(g)  

            //2.画乌龟,调用方法即可  

            this.drawTortoise(50, 50, g)  

    }  

      

}  

  

//定义一个乌龟类  

class Tortoise {  

        //表示乌龟的横坐标  

        int x = 0  

  

        //表示乌龟的纵坐标  

        int y = 0  

          

        public int getX() {  

            return x  

        }  

  

        public void setX(int x) {  

            this.x = x  

        }  

  

        public int getY() {  

            return y  

        }  

  

        public void setY(int y) {  

            this.y = y  

        }  

        public Tortoise(int x, int y){  

            this.x = x  

            this.y = y  

        }  

}

jose 不动 ,maria forward(40) turn(-90)

这是java 中的方法传参问题 ,在java中参数类型是引用类型,传的是这个引用参数的引用的副本,在dosth()中,这个引用turtle指向了maria的地址,改变的都是maria值

程序如下:

/**

*

* GuiTuSaiPao.java

* @author Antonio

* 2009年9月2日20:16:33

* 实现Runnable接口中的run方法

*

*/

public class GuiTuSaiPao implements Runnable {

private String name

private int length=0

public GuiTuSaiPao(){}

public GuiTuSaiPao(String name){

this.name=name

}

public void run(){

while(true){

//每次停500毫秒

try {

Thread.sleep(500)

} catch (InterruptedException e) {

e.printStackTrace()

}

//向前跑十米

length+=10

System.out.println(name+"已跑了"+length+"米.")

//到达终点

if(length>=100){

System.out.println(name+",已经到达终点!")

//结束赛跑,break

break

}

}

}

public static void main(String[] args) {

GuiTuSaiPao wugui=new GuiTuSaiPao("乌龟")

GuiTuSaiPao tuzi=new GuiTuSaiPao("兔子")

Thread thread=new Thread(wugui)

Thread thread2=new Thread(tuzi)

//启动线程

thread.start()

thread2.start()

}

}

输出结果:(不一定每次都一样!)

乌龟已跑了10米.

兔子已跑了10米.

兔子已跑了20米.

乌龟已跑了20米.

乌龟已跑了30米.

兔子已跑了30米.

兔子已跑了40米.

乌龟已跑了40米.

兔子已跑了50米.

乌龟已跑了50米.

乌龟已跑了60米.

兔子已跑了60米.

乌龟已跑了70米.

兔子已跑了70米.

乌龟已跑了80米.

兔子已跑了80米.

兔子已跑了90米.

乌龟已跑了90米.

兔子已跑了100米.

兔子,已经到达终点!

乌龟已跑了100米.

乌龟,已经到达终点!

完全看rp,这就是线程!

给分吧,哈哈


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11773620.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存