关于线程的一个小的游戏

来源:互联网 发布:生态环境监测大数据 编辑:程序博客网 时间:2024/06/05 09:54
这个是画图与事件相结合,线程分了三步:一是实现接口Runnable二是实现接口中的run()方法三是启动线程
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Ball extends JFrame implements Runnable{    int x = 50;    int y = 50;    int mx = 5;    int my = 5;    public Ball(){        addKeyListener(new KeyAdapter(){        //使用匿名内部类 和适配器Adapter来加键盘事件            public void keyPressed(KeyEvent e){                if(e.getKeyCode() == KeyEvent.VK_UP){                    my = -5 ;                }else if(e.getKeyCode() == KeyEvent.VK_DOWN){                    my = 5 ;                }else if(e.getKeyCode() == KeyEvent.VK_LEFT){                    mx = -5 ;                }else if(e.getKeyCode() == KeyEvent.VK_RIGHT){                    mx = 5;                }else{}                repaint();             }        });        setSize(600,400);        setDefaultCloseOperation(EXIT_ON_CLOSE);        setVisible(true);    }    //画小圆球并且用黑色填充    public void paint(Graphics g){        super.paint(g);        g.setColor(Color.black);        g.fillOval(x,y,50,50);    }    public void run(){        while(true){            if(x<=10) mx = 5;            else if(x + 40 >600)mx = -5;            if(y<=30) my = 5;            else if(y + 150>500)my = -5;            x += mx;            y += my;             repaint();            try{                Thread.sleep(50);//让线程堵塞            }            catch(Exception e){}        }    }    public static void main(String[] args){        //创建线程        Thread t = new Thread(new Ball());        //启动线程        t.start();    }}
0 0
原创粉丝点击