事件处理过程
要管理用尸与程序中建立的GUI组件的交互操作,我们就必须懂得在Java事件是如何处理的。为了获得有关的概念,让我们考察一个特别的例了。请不要为这里众多的类名以及其他的细节问题而担心。只要你从中感受到各项操作是如何连接在一起的就足够了。
假设用户点击程序GUI中的按钮,这个按钮就是事件的源。由于点击鼠标产生的事件与程序中描述屏幕上按钮的JButton对象关联。在按钮被点击时,应用程序将建立一个新对象来描述并标识这个事件,在本例中是一个ActionEvent类型的对象。它将包含有关事件与事件源的信息。传递给Java程序的任何事件都由一个特定的事件对象标识,这个对象将作为变量传递给处理事件的方法。
点击按钮的事件对象将传递给预先已经注册为对这类事件感兴趣的监听对象,监听对象是一个监听特殊事件的简单对象。监听器又称为事件的目标。这里"传递事件给监听器"意味着事件源调用监听对象中的一个特定方法,并把事件对象作为自变量传递给它。一个监听对象可以监听一个人特定对象的时间,比如一个按钮,也可以监听几个不同对象的事件,比如一组菜单项。采用哪种方式将依据你的操作需求以及从程序设计的角度看哪种方法更简便。在程序中常常包含这两种形式。
如何定义一个监听器呢?你可以他、让类实现监听接口来建立任何类对象的监听对象。监听接口的种类很多,一边迎合不同种类的事件,在点击按钮这个例子中,我们需要实现ActionLisrener接口以接收来自按钮的事件。接收这个对象以及应答事件的代码被实现在监听接口中声明的方法内。在我们的例子中,当事件发生时,ActionLisrener接口中的actionPerformed方法将被调用,并且事件对戏作为自变量传递给它。每种监听接口都定义了监听器已经设计好的用来处理所接收的事件的特定方法。
要把监听对象连接到一个事件源上只简单地实现一个监听接口是不够的。你还必须把监听器连接到你想要处理事件的一个源或多个源上。你可以通过调用源对象中的一个特殊方法注册一个监听对象,此处我们将调用JButton对象的addActionListener()方法,并且把监听对象作为自变量传递给它。
这种利用监听器处理事件的技术非常灵活、有效。特别是对GUI事件。对歌监听器可以接收一种特殊的事。然而一种特殊的事件只能传递给已经注册接收它的监听器,因此只能有对他感兴趣的部分才给予响应。由于一个监听器只需要实现一套相应的接口,实际上你可以在你喜欢的任何位置接收和处理事件。在Java中使用监听对象处理事件的方法被称为授权事件模型(delegation event model).这是因为响应发源于组件(如按钮或菜单项)
正像你所知道的,这不是一张很完整的低级的事件类列表,它只是一张你需要知道的事件列表。正如,有一个PaintEvenr类,他/它与在屏幕上绘制组件的操作有关,还有另外一个 低级事件类ContainerEvent,它定义了与容器相关的事件,比如添加或删除组件,由于这些事件被自动地处理,所以你可忽略它们。
这些类中的每一个类都定义了使你能够分析事件的方法,比如,MouseEvevnt型对象,在事件发生时可以得到光标的坐标。这些低级事件类还有从他们的超类继承了方法,其关系显示在下面的示意图中:
考无忧小编推荐:
更多计算机等级考试真题及答案>>>点击查看
想知道更多关于计算机等级报考指南、考试时间和考试信息的最新资讯在这里>>>点击查看