如何以编程方式调用作为独立任务运行的按钮?

bra*_*boy 2 java swing conways-game-of-life

我在Java swing中实现了Conway的生命游戏问题.一切都很好.正如您在下面的屏幕截图中看到的,只要单击"勾选"按钮,游戏就会进入下一个生命形式.现在,我计划在"Tick"按钮旁边添加一个"Autoplay"按钮.这种自动播放的目的很简单.当我点击它时,应该继续进行自动操作,就好像我以1秒的间隔按下勾选按钮.

在此输入图像描述

我试过这个.但这似乎阻止了所有其他操作.如何在单独的线程中执行此操作?一个小代码片段会让我继续前进.

class AutoPlayListener implements ActionListener{
  public void actionPerformed(ActionEvent e) {
    if(e.getSource() == btnAutoPlay){
      while(true){
        Thread.sleep(1000); //InterruptedException try catch hidden
        btnTick.doClick();
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

And*_*son 6

用一个javax.swing.Timer.ActionListener如果删除while(true)Thread.sleep()调用,它将能够使用现有的.