论如何给乌龟加点水并且指哪游哪...

主函数

public class TurtlePro {
	public static void main(String[] args) {
		//1.创建一个窗体
		JFrame frame = new JFrame();
		//2.给窗体添加标题
		frame.setTitle("史上最绿的一只龟");
		//3.给窗体添加大小
		frame.setSize(1400, 820);
		//4.窗体居中显示
		frame.setLocationRelativeTo(null);
		//类名.静态常量
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//画布
		TJPanel tj = new TJPanel();
		//添加画布到面板上
		frame.add(tj);
		//添加鼠标的监听事件
		frame.addMouseListener(tj);
		tj.addMouseListener(tj);	
		//5.显示窗体
		frame.setVisible(true);
	}
}

嘿嘿嘿

package db.hyn.day02;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JPanel;

public class TJPanel extends JPanel implements KeyListener,MouseListener,Runnable{
	//初始位置
	int x = 500;
	int y = 200;
	//四肢坐标
	int k1 = 500, t1 = 200;
	int k2 = 500, t2 = 200;
	int k3 = 500, t3 = 200;
	int k4 = 500, t4 = 200;
	int k5 = 500, t5 = 200;
	//加水的波纹
	int[] a = new int[300];
	int[] b = new int[300];
	public TJPanel(){
		Thread t = new Thread(this);
		t.start();//启动线程
		//构造方法:方法名与类同名;无任何返回值类型;无参构造
		for(int i = 0 ; i <a.length ; i++){
			//随机产生位置
			a[i] = (int)(Math.random()*1400);
			b[i] = (int)(Math.random()*800);
		}
	}
	public void paint(Graphics g) {
		super.paint(g);
		//修改底部背景色
		this.setBackground(Color.gray);
		// g 代表画笔
		//画乌龟的脑壳
		g.setColor(Color.pink);
		g.fillOval(x, y, 70, 100);
		//乌龟的眼珠子
		g.setColor(Color.BLACK);
		g.fillOval(x+10, y+30, 10, 15);
		g.fillOval(x+50, y+30, 10, 15);
		//加舌头
		g.setColor(Color.red);
		g.fillOval(x+30, y, 10, 7);
		//身体的壳子
		g.setColor(Color.red);
		g.fillOval(x - 79,y + 80, 230 , 300);
		//四肢
		g.setColor(Color.orange);
		g.fillOval(k1 - 60, t1 + 95, 35, 45);//左上
		g.fillOval(k2 - 60, t2 + 325, 35, 45);//左下
		g.fillOval(k3 + 100, t3 + 95, 35, 45);
		g.fillOval(k4 + 100, t4 + 325, 35, 45);
		//尾巴
		g.fillOval(k5 + 30, t5 + 355, 25, 55);
		//壳上面加文字
		g.setColor(Color.black);
		Font font = new Font(Font.DIALOG,Font.BOLD,15);
		g.setFont(font);
		g.drawString("大家好,我是龟", x - 25 , y + 220);
		//画波纹
		g.setColor(Color.BLUE);
		for (int i = 0; i < a.length;i++) {
			g.drawString("~~~~~~~~~", a[i], b[i]);
		}
	}
	//使用方法!!!
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		System.out.println("111111111");
		x=e.getX();
		y=e.getY();
		k1 = e.getX();
		t1 = e.getY();
		k2 = e.getX();
		t2 = e.getY();
		k3 = e.getX();
		t3 = e.getY();
		k4 = e.getX();
		t4 = e.getY();
		k5 = e.getX();
		t5 = e.getY();
		//重绘,重复调用paint方法
		repaint();
	}
	public void run(){
		System.out.println("start");
		while(true){
			for(int i=0;i<a.length;i++){
				a[i]--;
				if(a[i]<0){
					a[i] = 1400;
				}
			}
			try {
				Thread.sleep(10);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			repaint();
		}
	}
	@Override
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
	}
	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
	}
	@Override
	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
	}
	@Override
	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
	}
	@Override
	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub
	}
	@Override
	public void keyPressed(KeyEvent e) {
		// TODO Auto-generated method stub
	}
	@Override
	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值