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();