Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取应用程序的可见窗口数?_Java_Swing_Window_Awt_Jframe - Fatal编程技术网

Java 如何获取应用程序的可见窗口数?

Java 如何获取应用程序的可见窗口数?,java,swing,window,awt,jframe,Java,Swing,Window,Awt,Jframe,或者更确切地说: 我需要知道在窗口关闭事件中,是否还有其他窗口仍然可见 否则,将调用系统退出(0)。尝试 if(Frame.getFrames().length == 0) { // work here. } (Frame是java.awt.Frame,它是JFrame的父级,因此您也将捕获它们)。1)我需要知道关于窗口关闭事件的信息 有和 2) 如果任何其他窗口仍然可见。 您可以通过使用Window[]wins=Window.getWindows()获取的数量用于测试其可见性或通过添

或者更确切地说:

我需要知道在窗口关闭事件中,是否还有其他窗口仍然可见

否则,将调用系统退出(0)。

尝试

if(Frame.getFrames().length == 0) {
    // work here.
}
Frame
java.awt.Frame
,它是
JFrame
的父级,因此您也将捕获它们)。

1)
我需要知道关于窗口关闭事件的信息

有和

2)
如果任何其他窗口仍然可见。

您可以通过使用
Window[]wins=Window.getWindows()获取的数量用于测试其可见性或通过添加


一些重要的通知

谢谢大家的回答。在这种帮助下,我设法找到了一个可行的解决方案:

奇怪的是,它不适用于
windowClosed
。仅适用于
窗口关闭

代码 我需要知道在窗口关闭事件中,是否还有其他窗口仍然可见。否则,将调用System.exit(0)

只需使用:

frame.dispose();

当最后一个窗口关闭时,JVM将自动退出

或者在创建框架和对话框时使用:

frame.setDefaultCloseOperation(JFrema.DISPOSE_ON_CLOSE);

“当最后一个窗口关闭时,JVM将自动退出”:只有在不与JavaWebStart一起使用并且没有非守护进程运行线程的情况下才是如此。使用Swing打开父框架的模式对话框时,您可能也会遇到问题,需要手动处理。“frame.setDefaultCloseOperation(JFrema.dispose_ON_CLOSE);”:这并不能回答OP的问题,他希望最后一个关闭的框架退出应用程序,而不仅仅是其中的任何一个。@jfpoilpret--很好的反对意见,出于偶然,我打算使用Webstart。@jfpoilpret,嗯,我刚刚更新了我的Webstart应用程序,使用“DISPOSE\u ON\u CLOSE”。当我单击“启动”按钮时,应用程序启动,并显示在Windows任务管理器上。当我单击“关闭”按钮时,它将关闭并从Windows任务管理器中删除。这不意味着JVM已经退出吗?@camickr是的,这很奇怪,也许他们已经在最近的Java插件中修复了这个bug?几年前,基里尔写了一篇很好的文章:
frame.setDefaultCloseOperation(JFrema.DISPOSE_ON_CLOSE);