【问题标题】:Closing a Frame from a Panel从面板关闭框架
【发布时间】:2013-07-30 05:35:50
【问题描述】:

让我先解释一下情况, 我有一个名为 panelclass 的 JPanel 类。 它的方法 getPanel() 返回 JPanel。

在名为 frameclass 的 JFrame 类中,我创建了一个新的 panelclass 对象,获取它的面板并将其添加到框架窗格中。

我想要实现的是,当单击paneclass 中的按钮时,它应该关闭这个JFrame ie.frameclass。 我不知道面板类如何与框架类通信以关闭。 我尝试了 this.dispose() 和 super.dispose() 但即使在扩展 JFrame 之后也没有成功

有没有更简单的方法? 请帮忙。

【问题讨论】:

    标签: java swing jframe jpanel


    【解决方案1】:

    有几个是实现这个的,但最简单的可能是通过使用SwingUtilities.getWindowAncestor(Component)

    这将返回组件添加到的Window,如果没有父窗口,则返回null。从那里您可以简单地调用Window#dispose 来关闭框架。

    【讨论】:

    • @XperiazX 不要听起来那么震惊 ;)
    【解决方案2】:

    当paneclass中的一个按钮被点击时,它应该关闭这个JFrame

    Closing an Application。我更喜欢使用那里描述的“ExitAction”之类的东西。原因是您的应用程序的行为就像用户单击框架的关闭按钮一样,这意味着如果您将任何 WindowListener 添加到窗口中,它们将被调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-28
      • 2011-10-08
      • 2013-12-28
      • 2010-10-24
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 2016-05-20
      相关资源
      最近更新 更多