每个循环周期替换变量名

正如标题所说,我需要将变量名称的一部分替换为 for 循环迭代的次数。


在我的代码中,变量是 Swing 上的按钮网格,从 a1 到 c3。我必须重新着色依赖于 p1grid[] 数组的所有按钮。我不能(据我所知)将它们放在自己的数组中,因为它们是按钮。这是我的代码:


for (int i = 1; i < 4; i++) {

    if (p1grid[i - 1].equals("empty"))

        ("a" + i).setBackground(Color.LIGHT_GRAY);

    else

        ("a" + i).setBackground(Color.RED);

}


ABOUTYOU
浏览 105回答 1
1回答

德玛西亚99

您当前的代码将无法编译,因为 ("a"+i) 是一个没有 setBackground() 方法的字符串。假设按钮的类是 Button。因此,您可以执行以下操作:&nbsp; &nbsp;List<Button> buttons = new ArrayList<Button>;&nbsp; &nbsp;buttons.add(a1);buttons.add(a2);...然后使用以下方法修改背景:for (int i = 1; i < 4; i++) {&nbsp; &nbsp; if (p1grid[i - 1].equals("empty"))&nbsp; &nbsp; &nbsp; &nbsp; buttons.get(i-1).setBackground(Color.LIGHT_GRAY);&nbsp; &nbsp; else&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;buttons.get(i-1)..setBackground(Color.RED);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java