欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-23 20:34:25
...
为了让图形界面变得有意义,则必须加入事件处理。事件类都继承了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) ;
	}
};