【问题标题】:Java Swing JFrame dipositionJava Swing JFrame 配置
【发布时间】:2014-01-01 04:21:37
【问题描述】:

我有一个JFrameJFrame 有一个窗口监听器,用于关闭事件,这些事件被拦截并在关闭整个程序之前为用户提供选项。

我必须通过JFrame 拨打dipose() 还是只拨打System.exit(0) 安全?其次,我应该只在JFrame 上调用dipose(),还是应该先调用dipose(),然后再调用System.exit(0)

【问题讨论】:

  • 你能贴一些代码吗?
  • 我没有意识到我有一个班级成员,但正在声明并创建一个同名的新成员。这清除了它。
  • 在完成后编辑您的问题会使之前的答案无效。请不要这样做。如果您需要编辑它,请留下原始问题并在底部添加新信息。
  • 澄清了我的问题,以具体解决我想问的问题,尽管之前的评论解决了我发现的编译错误。很抱歉,我不会改变我的问题。
  • 1) 您是否查看过 setDefaultCloseOperation(...) 方法的 API?允许哪些值?您认为每个不同的操作会调用哪些方法? 2) 已经在我原来的回复中回答了。

标签: java swing jframe anonymous-class


【解决方案1】:

我的问题是我必须在我的 JFrame 对象上调用 dipose() 还是可以安全地调用 System.ext(0)?

你为什么要问这个?您应该先解决编译问题,然后再决定要使用哪种方法。不要因为不知道如何摆脱编译错误就使用 System.exit()

我正在使用 WindowAdapter 作为

您无需保留变量来引用您的框架。访问框架的最佳方法是从 WindowEvent 中获取框架:

JFrame frame = (JFrame)event.getSource();

要回答您最初的问题,我会使用 dispose()。如果它是您的应用程序中打开的最后一帧,它最终会调用 System.exit()。

编辑:

我想在关闭程序之前给用户一个选项来做一些富有成效的事情

您可以查看Closing an Appliction 了解有关此主题的更多想法。

【讨论】:

  • 我清除了我的编译错误。现在我只想知道我必须在JFrame 上使用dipose()
猜你喜欢
  • 2012-01-29
  • 2011-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 2012-11-08
  • 1970-01-01
  • 2020-09-29
相关资源
最近更新 更多