应用程序中的语义事件监听器-java基础处理事件

发布于 2018-02-01 09:09  编辑:盘子
0
计算机等级考试题库 扫码微信刷题


实现语义事件监听器的一个显然的候选者就是在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成员中监听对象的类型。







考无忧小编推荐:

更多计算机等级考试真题及答案>>>点击查看

想知道更多关于计算机等级报考指南、考试时间和考试信息的最新资讯在这里>>>点击查看


本文网址:http://www.k51.com.cn/info/jsjdjks/1802/0126022.html
选择分享到: