javafx:如何关闭未知的子阶段/窗口

javafx:如何关闭未知的子阶段/窗口,javafx,java-8,stage,xuggle,Javafx,Java 8,Stage,Xuggle,我使用以下代码使用xuggler转换视频: 转换工作正常,生产线: reader.addListener(ToolFactory.makeViewer(true)); 让我查看两个带有视频和统计信息的窗口。问题是,转换后窗口不会自动关闭,我不知道如何关闭 我把上面的一行改成了 IMediaListener imL=ToolFactory.makeViewer(IMediaViewer.Mode.FAST_VIDEO_ONLY,true); reader.addListener(imL);

我使用以下代码使用xuggler转换视频:

转换工作正常,生产线:

reader.addListener(ToolFactory.makeViewer(true));
让我查看两个带有视频和统计信息的窗口。问题是,转换后窗口不会自动关闭,我不知道如何关闭

我把上面的一行改成了

IMediaListener imL=ToolFactory.makeViewer(IMediaViewer.Mode.FAST_VIDEO_ONLY,true);
reader.addListener(imL);
然后我插入

reader.removeListener(imL);
            reader.close();
但在转换/任务完成后,窗口不会消失。因此我想知道如何访问此窗口以实现简单的stage.close

编辑:我正在使用Java8

编辑2: 我现在试过了

StageHelper.getStages().size(); //-> 1

两者都表明只有一个窗口。看起来,这些窗口
reader.addListenerToolFactory.makeViewertrue;不在列表中。

问题在于Xugler使用Swing而不是JavaFX so Window.impl_getWindows和StageHelper.getStages不会返回使用ToolFactory.makeViewertrue创建的窗口


所以正确的方法是。

不幸的是,我仍然在使用Java 8,并且我不能为这个项目进行更改。ToolFactory类来自Xugler?但是看起来Xugler使用的是Swing,而不是JavaFX,所以获得windows的正确方法是。谢谢你,这就成功了!
Iterator<Window> windows=Window.impl_getWindows();
String window_String="";
while(windows.hasNext()){
    window_String+=" |-> "+
}  
System.out.println("WINDOWS: ---->"+Window.impl_getWindows());