java焦点子系统
上一篇 /
下一篇 2008-01-21 01:50:42
java tutorials
http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.htmlKeyboardFocusManager简介
KeyboardFocusManager类用于管理与新的AWT焦点子系统的焦点相关的任务。它负责活动的和已定焦的窗口以及当前的焦点所有者。它的任务是让客户机代码可以启动焦点的更改并调度与焦点相关的所有事件。
确定当前的焦点所有者和焦点窗口
当前的焦点所有者是新的AWT焦点模型中的一个关键元素。所有遍历操作都从当前的焦点所有者或从另一个被虚拟的认作焦点所有者的组件开始。每个给定时间只
能有一个当前的焦点所有者。当前的焦点所有者是个已收到FOCUS_GAINED事件—但还未收到FOCUS_LOST事件的组件
确定焦点更改中的对立组件
FOCUS_LOST和FOCUS_GAINED
WINDOW_ACTIVATED和WINDOW_DEACTIVATED
WINDOW_LOST_FOCUS和WINDOW_GET_FOCUS
当调遣其中的一个事件时,总是同时调遣了这个事件的对立事件。焦点更改的对立组件只是个获取对立事件的组件。例如,当一个组件获得了焦点时,其对立组件就是那个失去该焦点的组件。
FocusEvent.getOppositeComponent()方法和WindowEvent.getOppositeWindow()方法返回
焦点更改所涉及的对立组件或窗口。上面列出的六个焦点事件和这两个方法密切相关。当一个窗口得到一个WINDOW_DEACTIVATED事件
时,getOppositeWindow()方法查找获取WINDOW_ACTIVATED事件的窗口。如果其对立组件或窗口处于一个不同的上下文,这些方法中每一个都会返回空。
Componet类、Container类和Windows类中的新方法
Component.isFocusable()传达了组件是否可以定焦。所有组件缺省的返回值都为真,因为所有组件在缺省情况下都是可定焦的。
Component.setFocusable(boolean)设置组件是否可定焦。
FocusTraversalPolicy类定义了组件遍历的顺序。该类应该提供不同的方法分别确定前一个、后一个、第一个、最后一个组件及缺省组件。它负责调遣关键事件、焦点事件和焦点相关的窗口事件。
导入论坛
收藏
分享给好友
管理
举报
TAG: