windowActivated(由WindowListener实现)和windowGainedFocus(由WindowFocusListener实现)之间的主要区别是什么?
Java文档说:
windowGainedFocus:
当Window设置为焦点窗口时调用,这意味着Window或其子组件之一将接收键盘事件。
windowActivated:
当窗口设置为活动窗口时调用。只有框架或对话框可以是活动窗口。本机窗口系统可以用特殊装饰(例如突出显示的标题栏)表示活动窗口或其子级。活动窗口始终是焦点窗口,或者是焦点窗口所有者的第一个框架或对话框。
但是有什么区别呢?还是正如所说的那样,聚焦窗口是一种激活的窗口?
提前致谢!
来自“ 如何编写窗口侦听器”,它也反映了您的问题中的引用:
windowActivated(WindowEvent)和windowDeactivated(WindowEvent): 分别在激活或禁用监听窗口之后调用。这些方法不会发送到不是框架或对话框的窗口。因此,首选使用windowGainedFocus和windowLostFocus方法来确定窗口何时获得焦点或失去焦点。
windowActivated(WindowEvent)和windowDeactivated(WindowEvent):
windowActivated(WindowEvent)
windowDeactivated(WindowEvent)
分别在激活或禁用监听窗口之后调用。这些方法不会发送到不是框架或对话框的窗口。因此,首选使用windowGainedFocus和windowLostFocus方法来确定窗口何时获得焦点或失去焦点。
所以,windowActivated是 只有 当窗口的框架或对话框中执行,而windowGainedFocus对于所有类型。
windowActivated
windowGainedFocus