requestFocus()是什么意思?

解决方案 »

  1.   

    requestFocus
    protected boolean requestFocus(boolean temporary)请求此 Component 获取输入焦点,并且此 Component 的顶层祖先成为获得焦点的 Window。此 Component 对于所要许可的请求而言必须是不可显示的、可聚焦的和可见的并且其所有祖先(除了顶层 Window 以外)必须是可见的。此方法会尽力完成该请求;但是在某些情况下可能无法完成。在此 Component 接收 FOCUS_GAINED 事件前,开发人员必须永远不能假定此 Component 是焦点所有者。如果由于此 Component 的顶层窗口没有成为获得焦点的窗口而拒绝了此请求,则记住此请求,并在后来用户使窗口成为获得焦点的窗口时许可此请求。 
    此方法返回布尔值。如果返回 false,则请求注定要失败。如果返回 true,并且在本机窗口系统允许请求前不禁止该请求或不发生特别的事件(如处理该组件的同位体),则请求成功。此外,虽然返回 true 表示请求可能成功了,但是在此组件接收 FOCUS_GAINED 事件前,开发人员必须永远不能假定此 Component 是焦点所有者。 此方法不能用于为根本不是 component 的内容设置焦点所有者,应该使用 KeyboardFocusManager.clearGlobalFocusOwner。 因为此方法的焦点行为与平台有关,所以强烈建议开发人员在可能时使用 requestFocusInWindow。 此方法会尽力完成该请求,确保作为此请求结果所产生的 FocusEvent 具有指定的临时值。但是,因为在所有本机窗口系统上指定一个任意的临时状态是不可能实现的,所以只有轻量级 Component 可以保证此方法的行为正确。此方法并非用于一般用途,而是作为轻量级组件库(如 Swing)的钩子 (hook) 而存在的。 注:并不是所有的焦点传输都将导致防止调用此方法。同样地,组件可以在没有调用此方法或 Component 的其他任何方法的情况下接收焦点。 
    参数:
    temporary - 如果焦点改变是临时的(如在窗口丢失焦点时),则为 true;有关临时焦点改变的更多信息,请参阅 Focus Specification 
    返回:
    如果焦点改变请求注定要失败,则返回 false;如果可能成功,则返回 true