如何检查用户是否离开了 JFrame window?
How to check if the user leaves the JFrame window?
我正在编写一个可以键入文本的程序。我还添加了一个快捷方式系统,但是我看到了一些困扰我的东西。
所以我创建了一个 JFrame
,它监听 class 扩展 KeyListener
接口。
我创建了一个ArrayList
,存储所有被按下的键的代码。
这个数组列表基本上与keyPressed
和keyReleased
方法一起工作。如果按下某个键,则其代码将进入数组列表。如果释放键,则它退出数组列表。
然后我在这个程序的开头测试了很多,我注意到如果我在按下任意键的同时离开框架然后我释放键(然后不在框架中)然后程序不知道我释放了键。
那我怎么知道按键是否还在按下,或者知道用户什么时候将“注意力”留在框架上window。
如果 JFrame 在前台,则 JFrame 的 hasFocus()
方法 return 为真,否则为假。换句话说,如果用户在 JFrame 之外单击或以其他方式切换,hasFocus()
将 return false。
您应该在 JFrame
中实现 WindowListener
windowActivated 事件看起来像您需要使用的特定事件。
我正在编写一个可以键入文本的程序。我还添加了一个快捷方式系统,但是我看到了一些困扰我的东西。
所以我创建了一个 JFrame
,它监听 class 扩展 KeyListener
接口。
我创建了一个ArrayList
,存储所有被按下的键的代码。
这个数组列表基本上与keyPressed
和keyReleased
方法一起工作。如果按下某个键,则其代码将进入数组列表。如果释放键,则它退出数组列表。
然后我在这个程序的开头测试了很多,我注意到如果我在按下任意键的同时离开框架然后我释放键(然后不在框架中)然后程序不知道我释放了键。
那我怎么知道按键是否还在按下,或者知道用户什么时候将“注意力”留在框架上window。
如果 JFrame 在前台,则 JFrame 的 hasFocus()
方法 return 为真,否则为假。换句话说,如果用户在 JFrame 之外单击或以其他方式切换,hasFocus()
将 return false。
您应该在 JFrame
中实现 WindowListenerwindowActivated 事件看起来像您需要使用的特定事件。