Originally Posted by
Zachafer
Use a MouseListener...
Code:
public class HomeworkAssignment implements MouseListener {
public HomeworkAssignment()
{
button1.addMouseListener(this);
button2.addMouseListener(this);
button3.addMouseListener(this);
addMouseListener(this);
//add paint code
}
public void mousePressed(MouseEvent e) {
if(e.getSource() == button1)
{
//change color according to button1
}
}
}
Thank you for the help but I have no idea what a mouse listener is or how to use one. I am in an introductory class and what I am mainly looking for is a way to make the program recognize that the mouse is being pressed in a certain area (the squares) and to then do something (change border of square and background color) because of this.
---------- Post added at 06:23 PM ---------- Previous post was at 06:05 PM ----------
Here's another attempt, based on modifying a switch example that was given:
Code:
boolean switchPressed;
boolean on = false;
int x, y, w, h;
void setup() {
size(500,500);
w = width/5;
h = width/5;
x = width/2;
y = height/2;
rectMode(CENTER);
}
void draw() {
strokeWeight(2);
if(on){
background(0,255,0);
stroke(0);
} else {
background(0);
stroke(255);
}
fill(0,255,0);
rect(y,x,100,100);
}
void mousePressed(){
switchPressed = (x-w/2<mouseX) && (mouseX<x+w/2)
&& (y-h/2<mouseY) && (mouseY<y+h/2);
if(switchPressed) on = !on;
}
I understand the boolean switchPressed being set to false and then to on when the mouse is pressed in the area given by the last part. What I don't understand is how to set up THREE squares to do this because of the single variable switchPressed. In addition, I'm a bit stumped on making the grey borders.