admin 管理员组文章数量: 887031
2024年1月13日发(作者:广告联盟广告价格)
Java程序设计
实验报告
题目:GUI标准组件及事件处理
学院:计算机科学学院
专业:08教育技术学01班
姓名:赵小龙
学号:4
GUI标准组件及事件处理
一、实验目的
掌握常用GUI控制组件及其事件处理。
二、实验内容
1.编程包含一个标签和一个按钮,单击按钮时,标签的内容在“你好”和“再见”之间切换
运行结果:
2.编程包含一个单选按钮组和一个普通按钮,单选按钮组中包含三个单选,文本说明分别为“普通”、“黑体”和“斜体”。选择文本标签为“普通”的单选按钮时,普通按钮中的文字为普通字体,选择文本标签为“黑体”的单选按钮时,普通按钮中的文字的字体为黑体,选择文本标签为“斜体”的单选按钮时,普通按钮中的文字的字体为斜体。
3.编程创建一个Frame,实现窗口的监听器接口。
三、思考题
1.Java的事件处理机制是怎样的?
答:事件处理机制
事件处理器(事件处理方法)
事件处理器是一个接收事件对象并进行相应处理的方法。事件处理器包含在一个类中,这个类的对象负责检查事件是否发生,若发生就激活事件处理器进行处理。
事件监听器接口与事件监听器类
事件监听器类
a. 包含事件处理器,并负责检查事件是否发生,若发生就激活事件处理器进行处理的类叫做事件监听器类。其实例就是事件监听器对象。事件监听器类必须实现事件监听器接口或继承事件监听器适配器类。
b. 事件监听器接口定义了处理事件必须实现的方法。事件监听器适配器类是对事件监听器接口的简单实现。目的是为了减少编程的工作量。
c. 事件监听器接口和事件监听器适配器类也都包含在和包中。
注册事件监听器
为了能够让事件监听器检查某个组件(事件源)是否发生了某些事件,并且在发生时激活事件处理器进行相应的处理,必须在事件源上注册事件监听器。这是通过使用事件源组件的以下方法来完成的:
addXxxListener(事件监听器对象)
Xxx对应相应的事件类。
事件、事件监听器接口、事件监听器类:
每一类事件有一个相应的事件监听器接口,该接口定义了接收和处理事件的抽象方法。实现该接口的类,就是监听器类。其对象可作为监听器对象向相应的组件注册。
事件的类名通常为:XxxEvent
对应的事件监听器接口名通常为:XxxListener
一个监听器接口定义了一种以上的抽象事件处理方法(事件处理器)。
事件监听器类实现事件监听器接口,其类名可以由我们自己取。事件监听器类需要我们自己编写。
一个组件可以注册一个或多个监听器对象,事件对象只向已注册的监听器对象报告事件的发生。
2.若一个数据只有两种取值可能,采用哪种组件表示比较合适?如果有二种到三种取值可能,采用哪种合适?如果取值的可能大于5个,采用哪种组件合适?
答:基本控制组件是图形用户界面的最小单位之一,它里面不再包含其他成分。基本控制组件的作用是完成与用户的一次交互。目前常用的基本控制组件有:
标签(Label)、文本编辑区(TextField、TextArea)、按钮(Button)、复选框(Checkbox)、单选按钮(CheckboxGroup、Checkbox)、下拉列表(List或Choice)。
如果这两到三种取值是互斥的话,采用单选按钮表示比较合适,否则采用复选按钮表示;如果5种以上的取值只能多选一的话,采用Choice下拉列表,否则采用List下拉列表。
3.事件监听器和事件适配器的关系是什么?
答:监听器是接口,而适配器是个实现类。可以认为适配器仅仅是为了编程的方便而加入的。适配器实现了它所对应的监听器接口,“实现”的方式就是为每一个接口方法提供一个空的实现体,所以它没有任何实际作用。 但有时候一个接口有好多接口方
法,编程时一个一个地实现,有用的逻辑代码和无用的仅仅为了语法需要的代码就杂糅在一起了,很不好,这是就应该从适配器继承而不是直接实现从监听器接口,从而仅仅需要实现你所感兴趣的事件响应方法就可了。
4.编程包含两个按钮和一个标签,将发生单击事件的按钮上的文本信息显示在标签中。
运行结果:
四、实验心得
通过这次实验我了解到常用GUI控制组件及其事件处理,以前对于这方面的了解的非常少,几乎没有了解,我对这次实验的内容也非常感兴趣,在一些问题上自己也有一定的见解,对java运行环境的了解程度和代码的书写程度也有较大的进步,从这次实验我学到了很多以前没有接到的知识与内容,这将对我以后的学习过程中有很大程度的帮助,也是我在以后学习中的优势,我以后会更加努力学习这方面的知识,使自己对这方面的了解程度更加的专业,能够运用到自己以后的生活中。
版权声明:本文标题:java 实验4 GUI标准组件及事件处理 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705124924h473763.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论