java图形编程:java焦点管理专题.pdfVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java图形编程:java焦点管理专题

本文作者:黄邦勇帅 本文主要介绍 java1.4版本的焦点部题,全文共 4章,第一章重点介绍焦点遍历策略,同时举了一个自定义实现焦点遍 历策略的示例。第 2章介绍有关焦点管理的方法和类,第 3章介绍焦点遍历循环的问题,本章对焦点中的几个比较难 于理解的概念焦点遍历循环,焦点遍历循环根,向上/下焦点遍历循环,作了深入的讨论,并且还列举了一个示例进行 验证。 本文内容完全属于个人见解与参考文现的作者无关,其中难免有误解之处,望指出更正。 声明:禁止抄袭本文,若需要转载本文请注明转载的网址,或者注明转载自“黄邦勇帅”。 主要参考文献: JFC核心编程 第 2版 [英]Kim Topley著 郭旭 朱浩斌 吴宇文译 清华大学出版社出版 2003年 7月 JavaTM 2 Platform Standard Edition 6 API 开发人员文档 第 1章:焦点遍历策略(焦点传输的算法问题) (共 4章,共 13页) 专有名词解释: 1、可聚焦性:即组件是否可以获得焦点,如 Label组件是不能获得焦点的,但可以通过Component.setFocusable(boolean) 方法使 Label能够获得焦点。同位体的可聚焦性是与实现有关的,对Windows和Unix的建义是,Canvases, Labels, Panels等和轻量级组件都是不可聚焦的同位体,而其他所有的组件都具有可聚焦的同位体。 2、焦点遍历循环根:其实就是一个容器,可以将任意容器设置为焦点遍历循环根,只不过当焦点在来回转移时,这个 焦点将一直呆在焦点循环根内的一个循环之中。比如可以将 JPanel设置为一个焦点遍历循环根。 3、焦点遍历循环:一般在使用 TAB 传递焦点时焦点都是在一系列组件之间来回循环的传递,这就是焦点遍历循环。 比如有组件 jb1, jb2, jb3, jb4,这时焦点的传递次序可以是 jb1, jb2, jb3, jb4,jb1,jb2....,当 jb4获得焦点后可以再传 回到 jb1,如此产生一个循环,这就是焦点遍历循环,焦点具体怎样传递这取决于焦点遍历策略的算法。 4、向上/下焦点遍历循环:就是将焦点从一个循环传递到另一个焦点循环。一个焦点遍历循环只属于一个焦点遍历循 环根,因此向上/下焦点遍历循环,其实就是将焦点从一个焦点遍历循环根传递到另一个焦点遍历循环根。 一、焦点的切换顺序 1、我们可以使用制表键(即 TAB键)来使焦点移至下一个组件,使用 Shift-Tab使焦点移至前一个组件。 2、在AWT中,组件焦点的切换顺序一般就是组件添加到容器的顺序。 3、在 jav1.4版本 Swing组件的默认焦点传输策略中,组件的切换顺序是基于容器的直观布局,而与组件添加到容器的 次序无关。Swing焦点管理器会比较容器中的每一对组件,考察其 X轴和 Y轴坐标。若 Y轴坐标是“闭”的,则 会基于X轴坐标对组件排序,因此这时具有较小X轴坐标的组件会优先得到焦点;若Y轴坐标不是闭的,则焦点 会基于 Y轴坐标进行,这时具有较小 Y轴坐标的组件会优先得到焦点。简单地说,就是在同一行上的组件次序是 从左到右,但在较低的行之前,在较高的行之后;也就是行与行之间,较高的行首先具有从左到右的焦点,然后再 从较低的行从左到右。 二、java1.4版的焦点控制(也称Merlin) 1.4 版的焦点系统相当庞大,本文只着重介绍 FocusTraversalPolicy 焦点遍历策略类,简要介绍 KeyboardFocusManager 键盘焦点管理类,这两个类都是抽象类,其中 FocusTraversalPolicy类定义了焦点按照什么顺序在组件之间进行遍历, 而KeyboardFocusManager类,则主要负责管理焦点所有者,比如,确定当前的焦点所有者和焦点窗口,它的任务是让 客户机代码可以启动焦点的更改并调度与焦点相关的所有事件。 三、java.awt.FocusTraversalPolicy焦点遍历策略抽象类 1、FocusTraversalPolicy定义了一种顺序,按此顺序遍历具有特定焦点循环根的组件,该抽象类的主要作用是提供一种 算法,使其在我们按下 Tab或 Shift-Tab进行向前或向后遍历时,确定下一个或上一个将获得焦点的组件。 2、原型为:public abstract class FocusTraversalPolicy extneds Object 3、直接子类:ContainerOrderFocusTraversalPolicy, InternalFrameFocusTraversalPolicy 4、构造方法为:只有一个默认构造方法 5、方法有(共 6个): abstract Component getComponentAfter

文档评论(0)

l215322 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档