点击查看:2015计算机等级考试二级Java入门教程章节汇总
点击查看:2015计算机等级考试二级Java入门教程第十三章汇总
13.5 应用程序中的语义事件监听器
实现语义事件监听器的一个显然的候选者就是在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成员中监听对象的类型。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |