所以我试图使用 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