我正在用Java做棋盘游戏,我想点击开始按钮开始游戏。主要功能是一个递归功能(gameloop),我在ActionListener中调用该功能,当我单击按钮时,它被卡住了。

ActionListener startListener = new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        gameFrame.remove(startB);
        gameFrame.add(boardPanel, gbc);
        gameFrame.revalidate();
        Game.gameLoop(); //the main recursive function
    }
};


编辑:我使用了SwingWorker,它工作正常,谢谢您的帮助

最佳答案

尝试这样的事情:

@Override
        public void actionPerformed(ActionEvent e) {

            gameFrame.remove(startB);
            gameFrame.add(boardPanel, gbc);
            gameFrame.revalidate();
            new Thread(){
                   public void run(){
                           Game.gameLoop(); //the main recursive function
                   }
            }.start();

        }

关于java - 单击时JButton卡住了(因为我在ActionListener中启动了递归函数),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54167285/

10-09 01:04