- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本文作者:黄邦勇帅
本文主要介绍怎样实现像, 这样的快捷键,在 版本以后使用的是,,
三个类共同实现快捷键,本文主要集中介绍这 个类的作用原理及使用方法,在第 章介绍了系统中 和
的层次结构,了解层次结构之后就能对系统怎样实现的快捷键有一个全面的认识,从而我们可以完全移除系
统自定义的快捷键比如在按钮获得焦点时使用空格键来激活按钮的操作
本文内容完全属于个人见解与参考文现的作者无关,其中难免有误解之处,望指出更正。
声明:禁止抄袭本文,若需要转载本文请注明转载的网址,或者注明转载自 黄邦勇帅”。
主要参考文献:
核心编程 第 版 英 著 郭旭 朱浩斌 吴宇文译 清华大学出版社出版 年 月
开发人员文档
第一章:快捷键实现原理(ActionMap,InputMap,KeyStroke)
(共 7 页)
这里的快捷键指的是像按下,, 这样的快捷键,而不是像按妞或菜单下面带有下划线的快捷键,
本文的快捷键可以实现像 这样的功能,也就是只要窗口或窗口内的任一组件获得焦点,然后按下 键就能实现其
操作。系统本身就实现了快捷键的功能,比如我们在获得焦点的按钮 上按下空格键时,这时就相当于是按下了按钮,
因此系统本身就实现了空格键的处理。
“” “”
把 或 等快 把某 一操 作 比如 为 与 把 与 为某一操作
捷键使用 类 相关联, 就是一 所取的名字相关联,这样我们就能使用
来 存储,怎样 创建 个桥梁,它其实就是为操作取了一个名 自定义的组合键实现自定义的功能了。
见正文讲解 字,并把这个名字与一个操作对象相绑 怎样创建 见后文讲解
定,操作应是实现了 接口的一个
类的对象
ActionMap 与 InputMap 实现快捷键原理图
一、实现原理(ActionMap,InputMap 与 KeyStroke):
、 类用于存储不同的组合键,比如将 存储为一个 对象。
、 用于将使用 实现的操作与一个自定义的 名称进行关联。
、 用于将使用 创建的组合键对象与某一名称进行关联,若这个名称在相应的 中有相关
联的操作,则就成功创建了组合键到操作的映射,这样以后就可以使用 此组合键来实现此操作。
、在 版本以前,把快捷键与 关联的是使用 类中的 方法与
直接进行关联的;
、在 版本以后,把快捷键与 进行关联分为 步,使用 接口将快捷键与一个名字这个名字是
自已命名的任意名字关联,使用 将名字与某一个 关联,这其中就多了一个名字在中间,这样做
的好处就是,在以后需要修改或添加不同的快捷键而实现相同的功能 由 实现时,我们就只需修改
中的项即可;比如我们想把以前的 复制功能,修改为其他快捷键,比如使用 来复制,这时,我们就只
需创建一个存储 的,然后再把这个 与 需要的功能 由 实现关联起来就可以
了,由于 需要为所关联的功能 由 实现命名一个名字 比如为,因此首先使用 将
命名的这个名字与所实现的功能关联起来,然后再使用 把 与 为实现该功能命名的名
字关联起来,这样以后我们就可以使用 来达到与使用 相同的复制功能的效果了,而不必知道实现该
功能的是哪个类的实例。
二、创建快捷键的步骤:
、创建一个实现了 接口注意:不是的类,一般都使用继承自抽象类 的类来实现,
比如为类。
、使用 创建一个名字键,并将这个名字与类 的对象关联起来,这样就把名字和操作相联系起来了,方
法为: “” 其中 是要将要触发的快捷键的组件,可
以为按钮也可以为容器等组件;其中的名字可以取任意的名字,但必须得保证其唯一性。
、创建一个 对象: ,
这里表示创建一个为 “”的快捷键,其触发操作的是键按下,具体参看后面的 类
、将创建的 与 关联,方法为:
; ””
这样便把快捷键””与操作
文档评论(0)