java - JButton 在单击时卡住(因为我在 ActionListener 中启动递归函数)

标签 java loops swing jbutton actionlistener

我正在用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/

相关文章:

java - 重绘()无法工作

java - 我可以在单线程中使用两个套接字吗?

java - Tomcat 8 getOpenSessions() 没有返回端点的所有 session ?

java - 如何通过匹配内部数组中的值来对 arraylist 中的数组进行分组?

Java XStream - 忽略 XML 中不存在的标记

python - 我正在创建这个基于人工智能的战术脚趾应用程序

java - 二十一点游戏的逻辑

java - 在 Java Swing 中使用 JTable 可视化 Set<T>

java - 旋转两条平行线以创建 X

java - 如何在 jlabel 中显示来自网络的文本和图像