JAVA事件监听机制的实现

  今天学习了java的事件编程机制,略有体会,先在此记下心得。java

  第一,首先明确几个概念。web

事件源:一个产生或者触发事件的对象。
事件:承载事件源状态改变时的信息对象。
事件监听器接口:实际上就是一个类,该类实现了某个事件监听器接口。编程

  具体来讲,就是事件源状态发生变化,好比说是发生点击。事件源状态发生变化后要将状态变化经过“事件”这个载体,传递到相应的事件监听接口进行处理(大概是这样理解吧)。所以,为了可以实现事件的监听,有如下几个步骤须要实现。ide

一个类实现事件监听的步骤:布局

一、实现相应的接口;
二、把接口的处理方法根据须要从新编写;
三、在事件源注册监听。
 
  
 
  很关键一点是必定要记得注册事件,这三个步骤缺一不可!
  如下附上今天的源代码:
/*
 * 实现java事件监听机制
 */
package com.listener;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;

public class Demo9_5 extends JFrame
{
       //定义组件
      JButton jb1 ,jb2 ;
      MyPanel jp1 ;
       public static void main(String[] args)
      {
            Demo9_5 demo9_5 = new Demo9_5();
            
      }
       public Demo9_5()
      {
             //建立组件  
             jb1 = new JButton( "黑色");
             jb2 = new JButton( "红色");
             //添加组件
             jp1 = new MyPanel();
            
             this .setLayout( new GridLayout(3,1));       //设置布局样式
             this .add(jb1 );
             this .add(jp1 );
             this .add(jb2 );
            
             //注册监听!
             this .addMouseListener(jp1 );
            
            
             //显示窗体
             this .setSize(400,300);
             this .setVisible( true);
             this .setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
      }
}

class MyPanel extends JPanel implements MouseListener
{
       //画出背景颜色
       public void paint(Graphics g)
      {
             super .paint(g);
             //获取当前 mypanel的宽和高
             int w,h;
            w = this .getWidth();
            h = this .getHeight();
            g.fillRect(0, 0, w, h);
      }

       @Override
    public void mouseClicked(MouseEvent e)
    {
          // TODO Auto-generated method stub
          System. out .println("鼠标点击了MyPanel" );
    }

       @Override
    public void mouseEntered(MouseEvent e)
    {
          // TODO Auto-generated method stub
            
    }

       @Override
    public void mouseExited(MouseEvent e)
    {
          // TODO Auto-generated method stub
         
    }

       @Override
    public void mousePressed(MouseEvent e)
    {
          // TODO Auto-generated method stub
         
    }

       @Override
    public void mouseReleased(MouseEvent e)
    {
          // TODO Auto-generated method stub
         
    }
}
相关文章
相关标签/搜索