当应用程序中的任何一个窗口被创建或关闭时,是否有可能收到通知?
目前我正在轮询Window.getWindows()
,但我更希望得到通知。
我现在拥有的:
List<Window> previousWindows = new ArrayList<>();
while (true) {
List<Window> currentWindows = Arrays.asList(Window.getWindows());
for (Window window : currentWindows) {
if (!previousWindows.contains(window)) {
//window was created
}
}
for (Window window : previousWindows) {
if (!currentWindows.contains(window)) {
//window was closed
}
}
previousWindows = currentWindows;
Thread.sleep(1000);
}
我的要求:
jvm.addWindowListener(this);
@Override
public void windowWasDisplayed(Window w) {
//window was created
}
@Override
public void windowWasClosed(Window w) {
//window was closed
}
JFrame
是AWTWindows
,其他顶级Swing容器JWindow
和JDialog
也是如此。 - John Bollinger