`
薇Vv
  • 浏览: 2844 次
文章分类
社区版块
存档分类
最新评论

java中的事件

 
阅读更多

                                                                      事件

事件源:

     只能是Swing的图形界面组件

     动作发生在某个组件上,那么该组件就是一个事件源对象

     如:动作发生在按钮上,那么该按钮就是事件源

     

事件监听器:addActionListener(ActionListener l)//监听事件源(按钮)上是否有鼠标点击动作的发生,如果有鼠标点击动作发生,就会激活这个监听器方法,就会将该事件交给一个事件接口处理。

事件接口(事件处理者(类)):

      ActionListener是动作事件的接口,不能创建对象,所以需要定义一个类来实现该接口。

      定义的这个类就是事件处理者。

 

 

练习:在画板上画出一条直线

     1、创建一个画板

      *初始化JFrame界面:

       属性:标题、大小、是否可见

      *在界面上获取画笔

     2、事件

       事件源:JFrame 界面

       事件监听器:addMouseListener(MouseListener l);

       事件接口:MouseListener

1、

import javax.swing.JFrame;

public class DrawFrame extends JFrame{

 

        public void initUI(){//初始化界面

    this.setSize(300, 400) ;//设置界面的大小

    this.setTitle("我的画板");//设置界面的标题

    this.setLocationRelativeTo(null);//使界面处于中间的位置

    this.setDefaultCloseOperation(3);

java.awt.FlowLayout fl=new java.awt.FlowLayout();//

this.setLayout(fl);//设置整体的布局为流失布局

this.setVisible(true);//设置界面可见

 

java.awt.Graphics g=this.getGraphics();//画板上获取画笔

java.awt.event.MouseListener li=new Listener(g);用一个类来实现接口,定义这个类的对象

this.addMouseListener(li);//添加事件发生器  当有鼠标动作发生时被激活

 

 

}

 

public static void main(String []arg){

DrawFrame dr=new DrawFrame();

dr.initUI();

}

 

}

2、

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

public class Listener implements MouseListener{

  private java.awt.Graphics g;

   int x1,y1;//记录下坐标的位置

            int x2,y2;

  public Listener (java.awt.Graphics g){  //构造函数,将画笔传入到事件处理器中来

  this.g=g;

  }

  public void mouseClicked(MouseEvent e){//单击鼠标界面执行的操作

};                                                                                                                                                                                                               public void mousePressed(MouseEvent e){//按下鼠标后执行的操作

   x1=e.getX();

   y1=e.getY();

                x2=e.getX();

   y2=e.getY();

   };

  public void mouseReleased(MouseEvent e){//释放鼠标后执行的操作

   g.drawOval(x1, y1, x2, y2);//画直线:起点坐标:x1,y1;终点坐标:x2,y2

   

   }; 

   public void mouseEntered(MouseEvent e){

   }

   public void mouseExited(MouseEvent e){

   };

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics