我的开始按钮就像下一个迭代按钮(康威的生命游戏)

问题描述 投票:0回答:0

我最近完成了为康威的生命游戏编写代码。现在我想用一个简单的 GUI 和更新它

我想导出一个可运行的jar文件。因此我添加了3个文本区域;

-单元格大小(以像素为单位)

-迭代速度(以毫秒为单位)

-活细胞总数(仅当用户选择随机模式时)

我的计划是当用户按下开始按钮时,程序将从这些区域获取这三个信息并开始迭代。问题是我找不到显示每次迭代的方法。程序正确地进行了所有计算,但没有显示它们。但是我需要你帮助解决一个简单的问题。我需要你对这些问题的回答;
当我的代码如下所示时,每次单击开始按钮时,它都会正确显示下一次迭代。

在这里你可以看到它; https://www.youtube.com/watch?v=NmeuRH-0r7Y&feature=youtu.be

基本上我希望它只是一个开始按钮,而不是下一个迭代按钮。

我想做的是当我按下开始按钮时,它会在很短的时间(速度)后一个接一个地显示每次迭代。所以我尝试了很多方法来做到这一点,例如我添加了一段时间loop 和 thread.sleep 在动作侦听器中,它没有用。我在迭代方法中尝试过同样的事情,它也没有用。无论我做什么,我都无法在确定的时间后自动显示下一次迭代。

İ重要提示;迭代方法简单地暗示了生命游戏规则,并根据细胞大小、活细胞或死细胞等绘制我的缓冲图像。不要理会最终的 int 高度,它只是因为 ui 问题
cellsize,height,width,image,black,white,grid 只是为了绘画
gridarray 和 nextgridarray 是保存单元格数据的二维数组

    start.addActionListener(new ActionListener() { 
              public void actionPerformed(ActionEvent e) {
                    
                    if(randommode.isSelected()) {
                        final int height=700;
                        
                        iterations(height,width,cellsize,gridarray,nextgridarray,grid,black,white,image);
                        
                        
                        }                       
        
                    }
 
         } );

我尝试使用 while 和 for 循环,以及线程睡眠,但它没有用。

java actionlistener conways-game-of-life
© www.soinside.com 2019 - 2024. All rights reserved.