主函数
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
}
}