在Java应用程序中获取任何/所有活动的JFrame?
有没有办法从Java应用程序中列出屏幕上可见的所有当前打开/活动(我不确定这里的术语)?感谢您的帮助。JFrames
有没有办法从Java应用程序中列出屏幕上可见的所有当前打开/活动(我不确定这里的术语)?感谢您的帮助。JFrames
Frame.getFrames()
返回所有帧的数组。
或者,正如@mKorbel所提到的,将返回所有窗口 - 因为(&)扩展将提供所有框架,然后是一些。有必要迭代它们以发现哪些当前可见。Window.getWindows()
Frame
JFrame
Window
我同意Stefan Reich的评论。
一个非常有用的方法是...TDD(测试驱动开发)是有用的一个上下文(如果不是必需的):在(集成)测试中,您有各种对象显示(等),如果在测试正常完成之前出现问题(或者即使它正常完成),您经常需要在测试的清理代码中处理从属窗口。像这样的东西(在JUnit中):Window.getOwnedWindows()
Window
JDialog
@After
public void executedAfterEach() throws Exception {
// dispose of dependent Windows...
EventQueue.invokeAndWait( new Runnable(){
@Override
public void run() {
if( app.mainFrame != null ){
for( Window window : app.mainFrame.getOwnedWindows() ){
if( window.isVisible() ){
System.out.println( String.format( "# disposing of %s", window.getClass() ));
window.dispose();
}
}
}
}
});
}