首先让我解释一下情况, 我有一个名为panelclass的JPanel类。 它的方法是getPanel()返回JPanel。
在一个名为frameclass的JFrame类中,我创建了一个新的panelclass对象,得到了它的面板并将其添加到框架窗格中。
我想要实现的是,当单击窗格中的按钮时,它应该关闭此JFrame ie.frameclass。 我不知道一个panelclass如何与框架类进行通信以关闭。 我尝试了this.dispose()和super.dispose(),但即使在扩展JFrame
后也没有成功有更简单的方法吗? 请帮忙。
答案 0 :(得分:3)
有一些是为了实现这一目标,但最简单的可能就是使用SwingUtilities.getWindowAncestor(Component)
如果没有父窗口,这将返回添加组件的Window
或null
。从那里,您只需拨打Window#dispose
即可关闭相框。
答案 1 :(得分:1)
单击窗格中的按钮时,应关闭此JFrame
见Closing an Application。我更喜欢使用像那里描述的`ExitAction'之类的东西。原因是您的应用程序的行为就像用户单击框架的关闭按钮一样,这意味着如果您有任何WindowListener添加到窗口,它们将被调用。