java命名空间java.awt类component的类成员方法:
requestfocusinwindow定义及介绍
本文导语:
requestfocusinwindow
protected boolean requestfocusinwindow(boolean temporary)
如果此 component 的顶层祖先已经是获得焦点的 window,则请求此 component 获取输入焦点。此 component 对于所要许可的请求而言必须是不可显示的、可聚焦的和可见的并且...
requestfocusinwindow
protected boolean requestfocusinwindow(boolean temporary)
- 如果此
component
的顶层祖先已经是获得焦点的 window
,则请求此 component
获取输入焦点。此 component 对于所要许可的请求而言必须是不可显示的、可聚焦的和可见的并且其所有祖先(除了顶层 window 以外)必须是可见的。此方法会尽力完成该请求;但是在某些情况下可能无法完成。在此 component 接收 focus_gained 事件前,开发人员必须永远不能假定此 component 是焦点所有者。
此方法返回布尔值。如果返回 false
,则请求注定要失败。如果返回 true
,并且在本机窗口系统允许请求前不禁止该请求或不发生特别的事件(如处理该组件的同位体),则请求成功。此外,虽然返回 true
表示请求可能成功了,但是在此组件接收 focus_gained 事件前,开发人员必须永远不能假定此 component 是焦点所有者。
此方法不能用于为根本不是 component 的内容设置焦点所有者。应该使用 keyboardfocusmanager.clearglobalfocusowner
。
可在各种平台之间一致地实现此方法的焦点行为,所以强烈建议开发人员在可能时使用此方法,而不是 requestfocus
。依赖 requestfocus
的代码可能在不同平台上表现出不同的焦点行为。
此方法会尽力完成该请求,确保作为此请求结果所产生的 focusevent
具有指定的临时值。但是,因为在所有本机窗口系统上指定一个任意的临时状态是不可能实现的,所以只有轻量级组件可以保证此方法的行为正确。此方法并非用于一般用途,而是作为轻量级组件库(如 swing)的钩子 (hook) 而存在的。
注:并不是所有的焦点传输都将导致防止调用此方法。同样地,组件可以在没有调用此方法或 component
的其他任何方法的情况下接收焦点。
- 参数:
temporary
- 如果焦点改变是临时的(如在窗口丢失焦点时),则为 true;有关临时焦点改变的更多信息,请参阅 focus specification
- 返回:
- 如果焦点改变请求注定要失败,则返回
false
;如果可能成功,则返回 true
- 从以下版本开始:
- 1.4
- 另请参见:
requestfocus()
,
focusevent
,
addfocuslistener(java.awt.event.focuslistener)
,
isfocusable()
,
isdisplayable()
,
keyboardfocusmanager.clearglobalfocusowner()