事件
事件源:
只能是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){
};
}