点击这里给我发消息 点击这里给我发消息

应用程序中的语义事件监听器

添加时间:2013-12-7
    相关阅读: 程序
 

实现语义事件监听器的一个显然的候选者就是在Skctcher程序中的SketchFrame类中支持菜单栏操作。当我们在其中的个下拉式菜单中点击一个菜单项时,就会产生我们可以监听到的语义事件,然后用它确定相应的程序行为。

在构造图元对象时,我们使旧elementTyPe和e1ementColor成员设置每个菜单项的状态。只有对应elementType中默认类型的那个图元类型菜单项设置为复选,这是因为传递给JRadioButtonMenultem构造函数的自变虽比较后只产生一个True.颜色菜单项所使用的方法与之相同,但是要注意为了有效的比较,我们使用在Color类中定义的equals()方法。由于我们只使用在这个类中定义的Color常量值,所以可不必使用==,但是一旦使用的颜色不在这其中,就将不再操作。当然,对于图元类型项必须使用==,这是因为ID是int类型的。

进行整理后,我们可以为Elements菜单实现监听器了,让我们从类型菜单项开始。

我们将增加一个内置类,它将为指定图元类型的菜单项定义监听器。这个类将实现ActionListener接口,这是因为我们希望响应这些菜单项的操作行为。把下列定义作为内置类添加到SketchFrame中:

 //Handles element type menu items
class TypeListener implements AcLionLisener
{
//Constructor
TypeListener(int type)
{
this.type=type;
}
//sets the element type
public void actionPerformed(ActionEven:0)
(elementType=type; )
private int type;              //Store the type for the menu
}
 
现在我们可以使用这个类的对象作为菜单项的监听器。把下列代码添加到SketchFrame构造函数中的建立Elements菜单的类型菜单项代码之后:
 
    //Add type menu item listeners
    lineItem.addActionListener(new TypeListener(LINE));
    rectangleItem.addActionListener(new TypeListener(RECTANGLE));
    circleItem.addActionListener(new TypeListener(RIRCLE)
    curveItem.addActionListener(new TypeListener(CURVE));

为了把java.awt.event包加到SketcherFrarme类中,还需要增加一条import语句币新编译Sketcher ,看看它是如何操作的。

如何工作

与SketchFrame对象中设置当前图元类型没有什么不同。监听器类极其的简单。每个监听器对象存储与菜单项对应的类型,它是由自变量传递给构造函数的,当发生事件时。actionPerformed()方法存储SketchFrarme对象的。eletmentType成员中监听对象的类型。

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册