控制面板上小球的运动

来源:互联网 发布:linux sort 倒序 编辑:程序博客网 时间:2024/05/05 16:51
/** * 功能:加深对事件处理机制的理解 * 1.通过上下左右键,来控制一个小球的位置. */package com.class9;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.tools.JavaCompiler;public class Demo9_4 extends JFrame{MyPanel mp=null;public static void main(String[] args) {// TODO Auto-generated method stubDemo9_4 demo9_4=new Demo9_4();}//构造public Demo9_4() {mp=new MyPanel();//mp加入到JFrame//Container ct=this.getContentPane();this.add(mp);this.addKeyListener(mp);this.setSize(400, 300);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}//定义自己的面板class MyPanel extends JPanel implements KeyListener{int x=10;int y=10;public void paint(Graphics g) {super.paint(g);g.fillOval(x, y, 10, 10);}//键的一个值被输出public void keyTyped(KeyEvent e) {// TODO Auto-generated method stub}//键被按下public void keyPressed(KeyEvent e) {// TODO Auto-generated method stub//System.out.println("键被按下"+e.getKeyChar());if(e.getKeyCode()==KeyEvent.VK_DOWN) {//System.out.println("12");y+=10;} else if(e.getKeyCode()==KeyEvent.VK_UP) {y-=10;}else if(e.getKeyCode()==KeyEvent.VK_LEFT) {x-=10;}else if(e.getKeyCode()==KeyEvent.VK_RIGHT) {x+=10;}//调用repaint()函数,来重绘界面this.repaint();}//键被释放public void keyReleased(KeyEvent e) {// TODO Auto-generated method stub}}


运动效果图

我觉得这个小游戏挺有意思的,可以通过上下左右键控制小球的移动。小球的运动范围并没有限制

0 0
原创粉丝点击