Example
// Learning Processing
// Daniel Shiffman
// http://www.learningprocessing.com

// Example 5-5: Button as switch
boolean button = false;

int x = 50;
int y = 50;
int w = 100;
int h = 75;

void setup() {
  size(200,200); 
}

void draw() {
  if (button) {
    background(255);
    stroke(0);
  } else {
    background(0);
    stroke(255);
  }
  
  fill(175);
  rect(x,y,w,h);
}

// When the mouse is pressed, the state of the button is toggled.   
// Try moving this code to draw() like in the rollover example.  What goes wrong?
void mousePressed() {
  if (mouseX > x && mouseX < x+w && mouseY > y && mouseY < y+h) {
    button = !button;
  }  
}







  • http://www.facebook.com/stavros.sideris.7 Stavros Sideris

    How can i make it change into another color if i click again on the rectangle?

  • shiffman

    Make a variable for a color to put inside fill(). Then change the variable depending on state of button.

  • Juichiro

    Genius idea that one of using a set of conditions to turn on a boolean! It never occured to me. ;_;

  • Fatima

    “Try moving this code to draw() like in the rollover example. What goes wrong?” – I didn’t understand why it went wrong. Care to explain?

  • shiffman

    If you move it to draw() it will trigger over and over again (since draw() loops), changing the button state from true to false to true to false to true to false etc.