Java 只关闭JFrame的一个实例?

Java 只关闭JFrame的一个实例?,java,swing,jframe,Java,Swing,Jframe,因此,我有两个类,Main和MakeUserWindow,在我的Main类中,我使用循环多次调用MakeUserWindow,使用不同的参数。唯一的问题是,这会创建几个相互重叠的窗口(这并不是一个很大的交易,只是我可以在每个窗口上放置20个窗口)。我想做的只是使用window.dispose()

因此,我有两个类,
Main
MakeUserWindow
,在我的
Main
类中,我使用循环多次调用
MakeUserWindow
,使用不同的参数。唯一的问题是,这会创建几个相互重叠的窗口(这并不是一个很大的交易,只是我可以在每个窗口上放置20个窗口)。我想做的只是使用
window.dispose()window.close()我不知道,或者有没有更好的方法?在来这里之前我已经搜索了一段时间,没有任何结果

作为参考,这里是我正在做的一个简化版本

(MakeUserWindow是一个扩展JFrame的类)

编辑--- 我在循环之外初始化
MakeUserWindow
的原因是我需要使用
newWindow
的属性


感谢阅读,-Zach.

我已经测试过了,这就是我得到的:

    JFrame frame = new JFrame();
    for (int i = 0; i < 5 ; i++) {
        frame.dispose();
        frame = new JFrame();
    }

您能提供实例化所有MakeUserWindows的代码吗?根据您介绍的逻辑,“孤立”窗口不应该关闭。如何关闭JFrameI在几个不同的位置调用MakeUserWindow,每次调用时,我都会向它传递一个字符串,该字符串确定创建的窗口,如“idWindow”、“addWindow”等。该make user窗口实际上不是在for循环中调用的,而是在整个程序中多次调用的方法中调用的。请参阅
    JFrame frame = new JFrame();
    for (int i = 0; i < 5 ; i++) {
        frame.dispose();
        frame = new JFrame();
    }
    Map<String, JFrame> frames = new HashMap<String, JFrame>();
    JFrame frame = new JFrame();
    for (int i = 0; i < 5 ; i++) {
        frame = new JFrame();
        frames.put("Window" + i,frame);
    }
frames.get("WindowX").dispose();