尝试使用 KeyboardFocusManager 查找当前聚焦的窗口总是会导致错误消息

问题描述

因此,我尝试使用 KeyboardFocusManager 获取当前聚焦的窗口,我尝试使用两种方法来实现此目的:

public static void getwindowName() {
    String WindowName = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusedWindow().toString();
    System.out.println("Currently opened window: "+WindowName);
}

这导致 Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.awt.Window.toString()" because the return value of "java.awt.KeyboardFocusManager.getFocusedWindow()" is null

public static Window getActiveWindow() {
    return KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow();
}

当使用 System.out.println(getActiveWindow()); 调用方法时,null 会打印到控制台。我总是在执行程序时打开并聚焦 intelliJ,我什至尝试聚焦另一个程序,任务管理器,结果相同。你也有这种情况吗?我能做些什么来解决这个问题,或者还有其他更好、更简单的方法来在 java 中获取当前聚焦的窗口吗?我在 Windows 10 上使用 java 15.0.2

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)