码迷,mamicode.com
首页 > 其他好文 > 详细

会变色的乌龟(可通过鼠标键盘控制)

时间:2015-06-09 00:49:27      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

  1 package MyTest;
  2 
  3 import java.awt.*;
  4 import java.awt.event.KeyEvent;
  5 import java.awt.event.KeyListener;
  6 import java.awt.event.MouseEvent;
  7 import java.awt.event.MouseListener;
  8 
  9 import javax.swing.*;
 10 
 11 public class WuGui{
 12     public static void main(String args[]){
 13         ImageIcon image=new ImageIcon("source/1.jpg");
 14         JLabel label=new JLabel(image);
 15         
 16         JFrame w=new JFrame();
 17         mypanel mp=new mypanel();
 18         w.setSize(1366,768);
 19         
 20         //设置背景图片
 21         JPanel defaultPane=(JPanel)w.getContentPane();
 22         defaultPane.setOpaque(false);
 23         label.setSize(image.getIconWidth(), image.getIconHeight());
 24         w.getLayeredPane().setLayout(null);
 25         w.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
 26                 
 27         mp.setBackground(Color.WHITE);
 28         mp.setOpaque(false);//将容器的颜色设置为透明
 29         w.add(mp);
 30         
 31         w.addKeyListener(mp);
 32         mp.addKeyListener(mp);
 33         w.addMouseListener(mp);
 34         mp.addMouseListener(mp);
 35         Thread t=new Thread(mp);
 36         t.start();
 37         
 38         w.setVisible(true);
 39         
 40     }
 41 }
 42 class mypanel extends JPanel implements Runnable,KeyListener,MouseListener{
 43     int x=150;int y=180;
 44     int []a=new int[255];
 45     int []b=new int[255];
 46     int []c=new int[255];
 47     int i;
 48     public mypanel(){
 49         for(int i=0;i<1;i++){
 50             a[i]=(int)(Math.random()*255);
 51             b[i]=(int)(Math.random()*255);
 52             c[i]=(int)(Math.random()*255);
 53         }
 54     }
 55     public void paint(Graphics g){
 56         super.paint(g);
 57         g.setColor(new Color(91,207,48));
 58         g.fillOval(x-8, y-15, 31, 41);//142,165
 59         g.fillOval(x+95, y-15, 31, 41);//245,165
 60         g.fillOval(x-8, y+120, 31, 41);//142,300
 61         g.fillOval(x+95, y+120, 31, 41);//245,300
 62         g.fillOval(x+46, y-60, 35, 70);//196,120
 63         g.fillOval(x+52, y+140, 11, 50);//202,320
 64         
 65         
 66         g.setColor(new Color(47,104,54));
 67         g.fillOval(x, y, 120, 150);//big龟壳150,180
 68         g.setColor(new Color((int)(Math.random()*255),(int)(Math.random()*255),(int)(Math.random()*255)));
 69         //g.setColor(new Color(91,207,48));
 70         //g.setColor(new Color(a[i],b[i],c[i]));
 71         g.fillOval(x+7, y+7, 106, 136);//small 157,187
 72         
 73         g.setColor(Color.BLACK);
 74         g.fillOval(x+45, y-45, 10, 10);//195,135
 75         g.fillOval(x+70, y-45, 10, 10);//220,135
 76         /*
 77         g.drawLine(194, 228, 226, 228);
 78         g.drawLine(194, 276, 226, 276);
 79         g.drawLine(180, 252, 194, 228);
 80         g.drawLine(194, 276, 180, 252);
 81         g.drawLine(226, 228, 240, 252);
 82         g.drawLine(226, 276, 240, 252);
 83         
 84         g.drawLine(194, 228, 172, 210);
 85         g.drawLine(226, 228, 248, 210);
 86         g.drawLine(180, 252, 158, 260);
 87         g.drawLine(240, 252, 262, 260);
 88         g.drawLine(194, 276, 170, 300);
 89         g.drawLine(226, 276, 250, 300);
 90         */
 91         g.drawLine(x+44, y+48, x+76, y+48);
 92         g.drawLine(x+44, y+96, x+76, y+96);
 93         g.drawLine(x+30, y+72, x+44, y+48);
 94         g.drawLine(x+44, y+96, x+30, y+72);
 95         g.drawLine(x+76, y+48, x+90, y+72);
 96         g.drawLine(x+76, y+96, x+90, y+72);
 97         
 98         g.drawLine(x+44, y+48, x+22, y+30);
 99         g.drawLine(x+76, y+48, x+98, y+30);
100         g.drawLine(x+30, y+72, x+8, y+80);
101         g.drawLine(x+90, y+72, x+112, y+80);
102         g.drawLine(x+44, y+96, x+20, y+120);
103         g.drawLine(x+76, y+96, x+100, y+120);
104     }
105     public void run(){
106         while(true){
107             try{
108             
109                 
110                 Thread.sleep(240);
111             }catch(Exception e){}
112             repaint();
113         }
114     }
115     public void keyPressed(KeyEvent e) {
116         if(e.getKeyCode()==KeyEvent.VK_LEFT){
117             if(x>0){
118                 x=x-5;}
119         }
120         if(e.getKeyCode()==KeyEvent.VK_UP){
121             if(y>0){
122                 y=y-5;
123             }
124         }
125         if(e.getKeyCode()==KeyEvent.VK_RIGHT){
126             if(x<1200){
127                 x=x+5;
128             }
129         }
130         if(e.getKeyCode()==KeyEvent.VK_DOWN){
131             if(y<650){
132                 y=y+5;
133             }
134         }
135         repaint();
136     }
137     public void keyReleased(KeyEvent e) {
138         // TODO Auto-generated method stub
139         
140     }
141     public void keyTyped(KeyEvent e) {
142         // TODO Auto-generated method stub
143         
144     }
145     public void mouseClicked(MouseEvent e) {
146         // TODO Auto-generated method stub
147         x=e.getX();
148         y=e.getY();
149         repaint();
150     }
151     public void mouseEntered(MouseEvent arg0) {
152         // TODO Auto-generated method stub
153         
154     }
155     public void mouseExited(MouseEvent arg0) {
156         // TODO Auto-generated method stub
157         
158     }
159     public void mousePressed(MouseEvent e) {
160         // TODO Auto-generated method stub
161         
162     }
163     public void mouseReleased(MouseEvent e) {
164         // TODO Auto-generated method stub
165         int x1=e.getX();int y1=e.getY();
166         if(x1>100){
167             repaint();
168         //System.out.println("救命啊!!!");
169         }
170     }
171 }

技术分享

会变色的乌龟(可通过鼠标键盘控制)

标签:

原文地址:http://www.cnblogs.com/srxhmxx/p/4562288.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!