事件——让图形界面动起来

为了让图形界面变得有意义,则必须加入事件处理。事件类都继承了EventObject类。为了能跟踪事件源,EventObject类提供了getSource()方法来返回触发事件的对象。事件处理主要有三个部分:
事件源
1.只有Swing和awt的图形界面组件才能成为事件源对象。
2.事件发生的地方,动作发生在哪一个组件上,那么该组件就是事件源对象。

事件监听器方法
addActionListener(ActionListener l);
类似按钮上的鼠标点击或者输入框中的回车
addMouseListener(MouseListener l);
在事件源上发生鼠标按下,释放,单击,进入,离开操作时

事件接口(事件处理者)
定义类去实现ActionListener接口
定义类去实现MouseListener接口
注:对每个事件接口必须实现其所有的抽象方法。
举例:事件监听接口(MouseListener)中的抽象方法
public void mouseClicked(MouseEvent e) {
}
public void mouseDragged(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseMoved(MouseEvent e) {
}

事件适配器
监听器是一个对象,进行事件处理需要自动调用一个方法,为此创建该监听器的类需要实现相应接口中的所有方法。但是,通常每个组件需要的仅仅是接口中的个别方法。因此,为了使事件处理变得简单,Java为具有多个方法的监听器提供了对应的适配器(adapter)类。这个类的基本作用是屏蔽了事件监听器接口,是处理事件的类不必再实现事件监听器接口中的全部抽象方法。但是,处理事件的类只能继承一个事件适配器。因此,需要多个事件监听器时,可以自己定义一个事件适配器。
class MyMouseMotionHandle extends JFrame{
	public MyMouseMotionHandle(){
		super.setTitle("Welcome To MLDN") ;
		super.addMouseMotionListener(new MouseMotionAdapter(){
			public void mouseDragged(MouseEvent e){
				System.out.println("鼠标拖拽到:X = " + e.getX() + ",Y = " + e.getY()) ;
			}
		}) ;
		super.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(1) ;
			}
		}) ;	// 加入事件
		super.setSize(310,210) ;
		super.setVisible(true) ;
	}
};

猜你喜欢

转载自819418680.iteye.com/blog/2226321