所以我在我的Main
类中有两个类MakeUserWindow
和Main
,我通过循环使用不同的参数多次调用MakeUserWindow
。唯一的问题是,这会创建几个彼此重叠的窗口(这不是一个很大的交易,它只是我可以在彼此之上获得20个窗口)。我想做的只是在调用实例之前使用window.dispose();
,但是,当我这样做时,它会关闭窗口的所有实例。不允许我使用相同的变量重新创建实例。有没有办法只关闭我不知道的window.close();
这样的单个实例,或者我有更好的方法吗?我来之前已经搜索了一段时间,没有任何结果有帮助。
供参考,以下是我正在做的简化版
(MakeUserWindow是一个扩展JFrame的类)
MakeUserWindow newWindow;
for(stuff){
newWindow.dispose();
newWindow = new MakeUserWindow("parameters here");
}
EDIT ---
我在循环之外初始化MakeUserWindow
的原因是因为我需要使用newWindow
的属性。
感谢您阅读,-Zach。
答案 0 :(得分:1)
我测试了它,这就是我得到的:
JFrame frame = new JFrame();
for (int i = 0; i < 5 ; i++) {
frame.dispose();
frame = new JFrame();
}
或多或少喜欢你的代码。当你执行“.dispose()”时,只有最后一帧存活,因为你正在关闭其他帧。您可以做的是保存所有实例的地图。
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();