java - Java中点击Button1和Button2会按照顺序变成多种颜色

标签 java arrays loops for-loop button

当我点击button1时,button2会变成红色,当我第二次点击button1时,button2会变成黄色。当button2为蓝色时,点击button1后,button2会变回红色。我的代码不正确,但我希望编写与此类似的代码。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    
    String[] colorsArray = {"red","yellow","green","blue"};
    
    for(int i = 0; i < 4; i++)
        jButton2.setBackground(Color.colorsArray[i]);
}

代码错误:

cannot find symbol

symbol: variable colorsArray

location: class Color

最佳答案

编辑:您的颜色数组与此方法位于同一类中,而不是位于名为 Color 的类中,如代码 Color.colorsArray 所示。代码已修复

您不需要for循环。您需要存储 BT2 的当前状态,并在到达终点时循环。

这样你就可以从currentColor == 0开始。当您单击按钮时,您设置红色BG,即设置currentColor == 1。下次,您将其设置为黄色。当currentColor == 4时,您将其设置为0以重新开始。

// put this outside method, as class member
private final String[] colorsArray = {"red","yellow","green","blue"};
private int currentColor = 0;

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    if (currentColor == colorsArray.length) {
        currentColor = 0;
    }

    jButton2.setBackground(colorsArray[currentColor]);

    currentColor = currentColor + 1;
}

关于java - Java中点击Button1和Button2会按照顺序变成多种颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45986243/

相关文章:

java - 使用递归查找数组最大数量的代码始终返回数组中的最后一项

java - 使用 Selenium WebDriver 处理日历

javascript - 为数组中的每一个数字设置超时 5 秒,但不是一次为所有数字设置超时

Php:数组嵌套循环性能

java - 多个线程迭代同一个 map

java - 比较 10 个数字的字符串的最佳方法

c++ - 类中的对象数组

javascript - 获取动态生成的 div 的索引位置并存储在数组中,其中包含 onclick 函数

arrays - 在 Julia 中将一组数据帧转换为多维数组

java - Prime 测试,2 位数字