当前位置: 首页 > 知识库问答 >
问题:

用于更改背景颜色的循环

廉宇
2023-03-14

嗨,我正在为我的Java课程创建一个战舰程序。现在,我正在尝试开发一个射击类。为了开火,我试图将背景颜色从蓝色(这意味着它只是一个空单元格)改为黄色(以表明我已经在该单元格中开火,但那里什么也没有)。

这是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个答案

巫马越彬
2023-03-14

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

试试这样的:

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

或者,如果您想更改100个随机字段,请输入random。nextInt位于循环内,因此每次迭代中a和b都会发生变化(随机值可能与前一次迭代的值相同)

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

在每次迭代中执行的唯一代码是{(在for(..)>之后)和 之间的代码。这意味着在您的代码中, a和b设置一次,然后将同一网格字段标记为黄色一百次。如果这样做,那么在每次迭代中都会给a和b一个新值。

 类似资料:
  • 我有一个带有半径和笔划的CardView,但当我以编程方式更改CardView背景时,半径和笔划将丢失,我希望新颜色保留在笔划内。 这是我的cardview xml 这里是我换颜色的地方:

  • 我正在使用RangeSeekBar为3种情况设置一些值(即绿色=OK,琥珀色=警告,红色=撤离)...我正在使用xml绘图来设置背景 我知道我可以通过编程更改渐变,但如何缩小起始颜色并增加结束颜色?有人能解决这个问题吗? 谢谢

  • 问题内容: 有什么方法可以更改RibbonApplicationMenuEntryPrimary(Flamingo)的背景颜色吗? 我看了看它的javadoc,但找不到方法。 问题答案: 1)请注意,我已检查API;从开始,有很多导入和扩展,它们来自许多不同的方法(这里是我尝试覆盖MetalButtonUI的尝试)。 2)也许更改内置颜色主题会很容易,但是我不建议这样做。 3)我不是Flaming

  • 我在设计JScrollPane的样式时遇到问题。我只想能够更改拇指和背景的颜色(同时删除增加/减少按钮)。到目前为止,我尝试了以下方法: 而且 有了上面所有的代码,我得到了一个白色背景的暗拇指。有趣的是,如果我删除setUI函数,我会得到一个默认的拇指,背景变暗... 有什么想法吗? 谢啦 解决****** 上面的configureScrollBarColors函数可以通过以下方式使用: 把拇指的

  • 我正在使用浮动操作按钮,我想更改背景颜色。 这是我的密码 下面是我用来尝试实现这一点的代码: 我也得到我的FAB的角落,如图所示。我应该如何消除那些角落的阴影?

  • 问题内容: 我正在尝试以可靠,外观独立的方式更改a的颜色。 如果使用Metal L&F,则使用UIManager是一种方法: 注意 :Iyy指出我在上面的属性名称中有一个错字,但是我会留给上面的人输入,但实际的属性名称应该是: 但是,这在我当前的外观(当前为Windows XP)中不起作用。经过进一步分析,看来Windows(仍然是XP)中的系统外观根本没有使用任何基于-的属性,或者至少它本身不提