簡體   English   中英

具有actionlistener的JButton不執行其代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM