Java 在另一个类中处理JFrame

Java 在另一个类中处理JFrame,java,swing,Java,Swing,我有一个关于JFrames和正确处理它们的快速问题。我有一个有多个关卡的游戏,我希望在使用新关卡创建另一个关卡时处理使用中的框架 我目前正在开发的程序扩展了一个JFrame,这一直让我感到困惑,因为我不知道这个JFrame叫什么 无论如何,我还有一个类扩展了JPanel。在这个类中,我有一个方法,当游戏状态完成时,移除所有实例并关闭JFrame。但是这不起作用,因为我无法获得框架的框架,而是获得同一JFrame的多个实例 因此,我的设置如下所示: 类1扩展了JFrame .... .... 类

我有一个关于JFrames和正确处理它们的快速问题。我有一个有多个关卡的游戏,我希望在使用新关卡创建另一个关卡时处理使用中的框架

我目前正在开发的程序扩展了一个JFrame,这一直让我感到困惑,因为我不知道这个JFrame叫什么

无论如何,我还有一个类扩展了JPanel。在这个类中,我有一个方法,当游戏状态完成时,移除所有实例并关闭JFrame。但是这不起作用,因为我无法获得框架的框架,而是获得同一JFrame的多个实例

因此,我的设置如下所示:

类1扩展了JFrame .... ....

类2扩展了JPanel ... ... 方法(清除所有内容+获取新级别的新JFrame)

抱歉,如果这是含糊不清的,我不想为一个简短的问题发布数百行代码。我知道其他人也问过这个问题,但我似乎永远无法让它对我起作用

所以再一次,我的问题是如何在另一个类方法中关闭JFrame

(请注意,一切都很好,我只是无法关闭框架而不使其完全断裂)

dispose()
是一种疯狂级别的方法。如果您有属于
JFrame
或继承的
类的对象
o
,则
o.dispose()
应该对其进行处理。如果您不确定在处理o时是否初始化了它,则

if (o != null) {
    o.dispose();
}

如果您只是从某处调用
dispose()
,如果该对象/类没有dispose对象,您将得到一个异常。因此,如果您想从类
A
中释放
o
,那么您应该在其中一个方法中调用
o.dispose()
,但请确保在此之前正确初始化
o

您是对的,这是模糊的。尝试构建一个您应该避免使用多个JFrame的解决方案,请参见使用一个更好的解决方案来使用一个或多个JFrame