java事件处理机制的一个简单例子

public class Demo extends JFrame{
    MyPane mp=null;
 public static void main(String[] args) {
  // TODO Auto-generated method stub
        Demo deom=new Demo();
 }
    public Demo(){
     mp=new MyPane();
     this.add(mp);
     
     this.addKeyListener(mp);
     
     this.setSize(400,300);
     this.setDefaultCloseOperation(EXIT_ON_CLOSE);
     this.setVisible(true);
    }
}
//任何类,只要实现了相应的接口,就可去监听某个事件源
class MyPane extends JPanel implements KeyListener{
 int x=10;
 int y=10; 
 public void paint(Graphics g){
  super.paint(g);
  
  g.fillOval(x, y, 20, 20);
 }ide

 @Override
 public void keyPressed(KeyEvent e) {
  // TODO Auto-generated method stub
  if(e.getKeyCode()==KeyEvent.VK_DOWN){
   y++;
  }else if(e.getKeyCode()==KeyEvent.VK_UP){
   y--;
  }else if(e.getKeyCode()==KeyEvent.VK_LEFT){
   x--;
  }else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
   x++;
  }
  this.repaint();
 }this

 @Override
 public void keyReleased(KeyEvent e) {
  // TODO Auto-generated method stub
  
 }接口

 @Override
 public void keyTyped(KeyEvent e) {
  // TODO Auto-generated method stub
  
 }
}事件

总结:一个类要实现监听的步骤:
 a.实现相应的接口(keylistener,mouselistener,actionlistener,windowlistener)
 b.把接口的处理方法根据须要从新编写(override)
 c.在事件源注册监听
 d.事件传递是靠事件类的
get

相关文章
相关标签/搜索