[英]JButton with actionlistener does not execute its code
我在業余時間開發一款小游戲,但遇到了一個問題,但我並不清楚,為什么會這樣。
public class PauseMenu extends JFrame {
...
/**
* Create the frame.
*/
public PauseMenu() {
...
JButton btnContinue = new JButton("Continue");
btnContinue.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
GamePanel.var.setPause(false);
dispose();
}
});
contentPane.add(btnContinue);
...
}
這是不能真正起作用的代碼。 這是一個帶有三個按鈕的JFrame(我剪掉了另外兩個按鈕)。 它應該是“暫停”菜單,當按下鍵“ p”時是“彈出”菜單。 它工作得很好,問題是
GamePanel.var.setPause(false);
該行應在false上設置一個布爾值,然后繼續我的游戲循環。 但是由於某些原因它永遠不會執行,布爾值保持為true。 僅在將主游戲窗口從JPanel更改為JFrame之后,才出現此問題,因此我可以顯示其他jframe。 我將它們鏈接在一起是因為它們很長:
這是JPanel的舊代碼。 該按鈕適用於此代碼。
https://github.com/westerwave/dogfight_remake/blob/master/main/Dogfight.java
這是當前代碼(JPanel)
https://github.com/westerwave/dogfight_remake/blob/master/main/GamePanel.java
(JFrame)
public static GameFrame frame;
public GamePanel game;
public GameFrame() {
setUndecorated(true);
setResizable(false);
setTitle("Dogfight-Frame");
setSize(dim);
setVisible(true);
game = new GamePanel();
getContentPane().add(game);
frame = this;
}
希望我對這個問題清楚明白,希望您能對我有所幫助。
編輯:我犯了一個錯誤,並依靠我的paintComponent方法向我提供有關布爾值的信息。 現在,我發現布爾值已更改,因此一切按預期進行。 但是我單擊該按鈕后,我的游戲循環無法恢復
那應該正常工作,我懷疑這里有些混亂。
如果將斷點放入actionPerformed()
方法(或在那里簡單地放置System.out.println()
語句)怎么辦? 是否已達成/執行?
該項目祝您好運,似乎很有趣!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.