我感觉我不知道如何摆动计时器.我还是Java GUI API的新手,我正在编写的程序只是为了测试自己并帮助我更熟悉自己的内部工作.
它应该做的是等到用户按下"开始"按钮,然后迭代显示器(白色或黑色JPanel网格),以1秒的间隔显示简单的元胞自动机模拟,并在按下"暂停"按钮时暂停(与"开始"按钮相同,但更改名称).网格中的每个单元格应该以随机颜色(白色/黑色)开始.相反做的是暂停半秒左右,然后再"运行"半秒,然后暂停,然后运行,依此类推.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CA_Driver extends JFrame{
private JPanel gridPanel, buttonPanel;
private JButton start_pause, pause;
private static Timer timer;
private Color black = Color.black;
private Color white = Color.white;
static Color[][] currentGrid, newGrid;
static Cell[][] cellGrid;
static boolean run, stop;
static int height = 20, width = 30, state;
public CA_Driver(){
stop = false;
run = false;
currentGrid = new Color[height][width];
newGrid = new Color[height][width];
cellGrid = new Cell[height][width];
//Initialize grid values …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Terraform 0.12的新功能来实现嵌套循环,以便遍历AWS IAM用户,每个用户都可以附加一个或多个策略。用于表示此列表的变量的类型为map(list(string)),看起来像这样:
{
"user 1" = [ "policy1", "policy2" ],
"user 2" = [ "policy1" ]
}
Run Code Online (Sandbox Code Playgroud)
通过可以轻松地创建用户列表keys(),但是由于Terraform当前没有嵌套循环资源创建的机制,因此策略附件必须以独立于每个用户的单个循环的形式发生。因此,我正在尝试从地图输入中构建一个user:policy关联列表,该列表看起来像基于上面的示例:
[
[ "user1", "policy1" ],
[ "user1", "policy2" ],
[ "user2", "policy1" ]
]
Run Code Online (Sandbox Code Playgroud)
我正在尝试构造该列表并将其存储在本地变量中,如下所示,var.iam-user-policy-map输入映射在哪里:
locals {
...
association-list = [
for user in keys(var.iam-user-policy-map):
[
for policy in var.iam-user-policy-map[user]:
[user, policy]
]
]
...
}
Run Code Online (Sandbox Code Playgroud)
但是,尝试访问该嵌套列表中的值时出现错误。我正在尝试使用引用local.association-list[count.index][0]和策略访问关联的用户部分local.association-list[count.index][1],但是在运行时terraform plan会出错:
Error: Incorrect attribute value type
on main.tf line 27, in resource "aws_iam_user_policy_attachment" "test-attach": …Run Code Online (Sandbox Code Playgroud)