zoukankan      html  css  js  c++  java
  • Java事件处理机制2

    实现一个小程序,怎样让小球受到键盘的控制,上下左右移动,如图:

     1 public class Demo3 extends JFrame{
     2     MyPanel mp=null;
     3     public static void main(String[] args) {
     4         Demo3 demo=new Demo3();
     5     }
     6 
     7     //构造函数
     8     public Demo3(){
     9         mp=new MyPanel();
    10         
    11         //mp加入到JFrame
    12         this.add(mp);
    13         
    14         this.addKeyListener(mp);
    15         
    16         this.setSize(400,300);
    17         this.setVisible(true);
    18     }
    19 }
    20 
    21 //定义自己的面板
    22 class MyPanel extends JPanel implements KeyListener{
    23     int x=10;
    24     int y=10;
    25     public void paint(Graphics g){
    26         super.paint(g);
    27         
    28         g.fillOval(x, y, 10, 10);
    29     }
    30 
    31     @Override
    32     public void keyPressed(KeyEvent e) {           //代表某个键被压下去了
    33         //System.out.println("键被压"+(char)e.getKeyCode());
    34         if(e.getKeyCode()==KeyEvent.VK_DOWN){
    35             y++;
    36         }else if(e.getKeyCode()==KeyEvent.VK_UP){
    37             y--;
    38         }else if(e.getKeyCode()==KeyEvent.VK_LEFT){
    39             x--;
    40         }else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
    41             x++;
    42         }
    43         //调用repaint()函数,重绘界面
    44         this.repaint();
    45     }
    46 
    47     @Override
    48     public void keyReleased(KeyEvent e) {          //键被释放
    49         // TODO Auto-generated method stub        
    50     }
    51 
    52     @Override
    53     public void keyTyped(KeyEvent e) {            //键的一个值被输出
    54         // TODO Auto-generated method stub    
    55     }
    56 }

    这里的事件源是JFrame

    事件的监听者是mp。

    运行程序,效果如下:(若想实现小球的快速移动,只需修改x,y增加的大小)

  • 相关阅读:
    网络协议
    面向对象三大特性之多态
    面向对象三大特性之封装
    面向对象三大特性之继承
    python面向对象编程
    常用模块之configpaser与shutil
    XML模块
    Python模块之OS,subprocess
    Python日志(logging)模块,shelve,sys模块
    Linux 配置 Nginx
  • 原文地址:https://www.cnblogs.com/cxq1126/p/7296322.html
Copyright © 2011-2022 走看看