所以我在处理中有这个清单代码,我希望能够单击列表中的一个按钮,并让该按钮填充为黑色,但每次都是。我让那个部分只用一个按钮,但每当我在课堂上实现更多按钮并单击一个按钮时,它就会填充每一个按钮。我尝试过使用pushMatrix / popMatrix& pushStyle / popStyle,但每次我这样做时,单击按钮时按钮都不会改变颜色。如果有人可以告诉我该怎么做,那将非常感激。
这里是按钮类:
class Button {
// Other optional attributes could be r, g, and b values for examples
int xLoc;
int yLoc;
int wide;
int tall;
int fill;
boolean checked;
Button(int x, int y, int w, int h, int f) {
xLoc = x;
yLoc = y;
wide = w;
tall = h;
fill = f;
}
void display() {
//fill with blue green and create the rect
fill(fill);
if (mousePressed) {
if (button1.isClicked() == true) {
fill = 0;
}
}
ellipse(xLoc, yLoc, wide, tall);
}
// returns true if the mouse is over the button and false otherwise
boolean isClicked() {
if (mouseX > xLoc && mouseX < xLoc + wide) {
if (mouseY > yLoc && mouseY < yLoc + tall) {
return true;
}
}
return false;
}
boolean isChecked() {
if (fill == 0) {
return true;
} else {
return false;
}
}
}
以下是主要代码:
Button button1 = new Button(50, 50, 20, 20, 255);
Button button2 = new Button(50, 75, 20, 20, 255);
Button button3 = new Button(50, 100, 20, 20, 255);
Button button4 = new Button(50, 125, 20, 20, 255);
void setup() {
size(500, 500);
}
void draw() {
background(50);
button1.display();
button2.display();
button3.display();
button4.display();
}