2017-07-07 29 views
-2

我正在使用Java和Swing在線製作分佈式併發遊戲。當用戶按下[x]關閉窗口時,我想從遊戲區域移除玩家的圖標。在結束這個過程之前,我怎麼能說VM來執行一個函數呢?按下[x]時的運行代碼

+0

任何嘗試?您可以提供的任何代碼? – AscendedKitten

回答

2

假設您使用的是JFrame,請將其默認關閉操作設置爲DO_NOTHING_ON_CLOSE並添加WindowListener以對windowClosing作出反應。

此方法可以做任何需要的,然後只是dispose窗口實際關閉它。

注:這也可以用來詢問用戶是否她/他真的想要退出...

0

如果你使用一個JFrame,我覺得像在描述你最好寫你自己的KeyEventDispatcher該文章:Unresponsive KeyListener for JFrame 如果您只是將一個KeyListener添加到JFrame中,並且您有可選組件,那麼您必須將偵聽器也添加到所有這些組件,推測是遞歸的。

然後,您可以檢測到有人按下x然後調用JFrame的dispose功能。如果您還將WindowListener添加到JFrame中,則可以在框架關閉之前調用的windowClosing方法中放置一些代碼。