java - 如何在处理中使用 boolean 数组制作按钮?

标签 java arrays button boolean processing

我正在学习基于 Java 的环境“Processing”中的编程类(class)。其中一项作业是编写一个显示 3 个按钮(黑色)的程序。单击按钮时,该按钮应更改为另一种颜色(灰色)。我们需要使用 boolean[] 数组。我的代码如下:

boolean[] button = new boolean[3];

void setup(){
    size(300,300);
    button[0] = false;
    button[1] = false;
    button[2] = false;
}

void draw(){
    int x = (width/(button.length+1));
    int y = height/2;
    int ellipseSize = 50;
    int radius = ellipseSize/2;
    background(255);
    noStroke();
    fill(0);
    for(int i = 1; i <= button.length; i++){
        ellipse(i*x, y, ellipseSize, ellipseSize);
    }
} 

//shifting array values upon mouse pressing
void mousePressed(){


    int x = (width/(button.length+1));
    int y = height/2;
    int ellipseSize = 50;
    int radius = ellipseSize/2;

    for(int i = 1; i <= button.length; i++){
        button[i] = !button[i];
        if (mouseX > i*x-radius && mouseX < i*x+radius && mouseY > y-radius && mouseY < y+radius){
            if (button[i]){
                fill(150);
            }
        }
        else {
            fill(0);
        }
        ellipse(i*x, y, ellipseSize, ellipseSize);
    } 
}

我收到一条错误消息“ArrayIndexOutOfBoundsException: 3”。有人可以帮忙吗?

最佳答案

您收到错误ArrayIndexOutOfBoundsException: 3因为您试图访问非法索引。在 Java 和大多数编程语言中,数组从 0 开始。 。 因此,在 for 循环中,您需要更改 i <= button.lengthi < button.length

关于java - 如何在处理中使用 boolean 数组制作按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26107220/

相关文章:

java - 如何在涉及 Fragment 的 Android 代码中找到空指针错误

java - 如何在java中验证LEI校验和?

将给定单词与数组中的字符串进行比较

c# - ASP.NET:GridView 选择按钮:如何以编程方式更改按钮的属性?

GUI 问题中图形顶部的 Java 按钮

java - 数组 Object[]::new 的方法引用

javascript - 替换重复的字符不起作用

jquery - 如何使用 JQuery 将评论从评论部分推送到数组中?

cocoa-touch - iOS:按钮的非方形点击区域

java - 反编译 Apk 文件后,我得到数字而不是常量。如何获取这些数字的字符串值?