【问题标题】:Run code when pressing on the [x]按下 [x] 时运行代码
【发布时间】:2017-07-07 14:35:59
【问题描述】:

我正在使用 Java 和 Swing 在线制作分布式并发游戏。当用户按下 [x] 关闭窗口时,我想从游戏区域中删除玩家的图标。如何在终止进程之前让 VM 执行某个功能?

【问题讨论】:

  • 有什么尝试吗?您可以提供任何代码吗?

标签: java swing concurrency virtual-machine


【解决方案1】:

假设您使用的是JFrame,将其默认关闭操作设置为DO_NOTHING_ON_CLOSE 并添加WindowListener 以对windowClosing 做出反应。

这种方法可以做任何需要的事情,然后只需dispose 窗口就可以真正关闭它。

注意:这也可以用来询问用户是否真的想退出...

【讨论】:

    【解决方案2】:

    如果您使用的是 JFrame,我认为您最好编写自己的 KeyEventDispatcher,如该帖子中所述:Unresponsive KeyListener for JFrame 如果您只是将 KeyListener 添加到 JFrame 并且您在其上放置了可选组件,那么您也必须将侦听器添加到所有这些组件中,大概是递归的。

    然后您可以检测到有人何时按下 x,然后调用 JFrame 的 dispose 函数。如果您还向 JFrame 添加 WindowListener,则可以将一些代码放入在框架关闭之前调用的 windowClosing 方法中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      • 2021-09-02
      • 2019-08-01
      • 1970-01-01
      • 2016-02-09
      相关资源
      最近更新 更多