用于循环以更改背景颜色

时间:2013-04-09 13:22:20

标签: java for-loop background-color

您好我正在为我的Java类创建一个Battleship程序。现在,我正在努力研究射击的课程。为了解雇,我试图将背景颜色从蓝色(这意味着它只是一个空单元格)变为黄色(表明我已经在那个单元格中被解雇但是那里没有任何东西)。

这是Fire类的代码。如果您认为有必要,我可以包含它继承的其他类。我遇到问题的主要方法是尝试让我的“for”循环通过,然后将背景从蓝色变为黄色,以获得我想要的迭代次数。 100是用于测试目的的任意数字。

public class Fire extends Ship{

    public Fire() throws InterruptedException{
        super.setShipV();
    }
    public void Shoot() throws InterruptedException {

        Random random= new Random();

        int a = random.nextInt(100);
        int b = random.nextInt(100);

        for (int i = 0; i< 100; i++){
           //for(int j = 0; j< 50; i++){
           grid[a][b].setBackground(Color.yellow);
        }
    }
}

感谢您的帮助。

汉娜

1 个答案:

答案 0 :(得分:1)

访问网格时需要使用迭代器变量。

尝试这样的事情:

for (int i = 0; i< 100; i++){
   for(int j = 0; j< 50; i++){
      grid[i][j].setBackground(Color.yellow);
}

或者如果要更改100个随机字段,请将random.nextInt置于循环内,以便ab在每次迭代中更改(随机值可以达到与先前迭代相同的值) )

for (int i = 0; i< 100; i++){
   int a = random.nextInt(100);
   int b = random.nextInt(100);
   grid[a][b].setBackground(Color.yellow);
}

每次迭代中执行的唯一代码是{for(..)之后)和}之间的代码。这意味着在您的代码中ab设置一次,然后您将相同的网格字段标记为黄色一百次。如果您这样做,则在每次迭代中为ab提供一个新值。