在另一个类

时间:2015-12-21 17:37:02

标签: java swing

我有一个关于JFrame的快速问题并正确处理它们。我有一个具有多个级别的游戏,我希望在使用新级别创建另一个框架时处理该框架。

我目前正在处理的程序扩展了一个JFrame ,这一直让我很困惑,因为我不知道JFrame的调用是什么。

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

所以我的设置看起来像这样:

Class 1扩展了JFrame .... .... ....

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

很抱歉,如果这很模糊,我不想发布数百行代码来解决一个简短的问题。我知道其他人已经问过这个问题,但我似乎无法让它为我工作。

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

(请注意一切都很完美,我只是可以关闭框架而不会完全打破我)

1 个答案:

答案 0 :(得分:2)

dispose()是一种灵感等级的方法。如果您有o的对象JFrame或继承的class,则o.dispose()应该处置它。如果您不想确定在您想要处理它时初始化o,那么

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

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