For this project, you will create 4 buttons. 1 Button, the clearButton, will be a basic Button using the constructor to set the x, y, w, h for the button's position and size, and then specifying 2 colors and a String, label, that's used to display text on the Button. You will also define a child class, either PImageButton or PShapeButton so you can create Buttons that display an image.
Example Use
//Button Constructor showing parameter details//Button( int x, int y, int w, int h, color c1, color c2, String label)//Declare and initializeButton button1 =newButton( 10,10,100,100, color1, color2,"Button1");//display the buttonbutton1.display();//click the buttonbutton1.click( mouseX, mouseY);
Class Code
classButton{////Instance Variables - Propertiesfloat x, y; //positionfloat w, h; //size dimensionsboolean selected; color defaultColor, selectedColor, currentColor;String label; ///text to display/////Constructor Methods/////Initialize our instance variables////Overloaded versions of constructors - unique parameter listsButton( float _x,float y,float w,float h,String label){ x = _x; //set value for class variable x, using parameter _xthis.y= y;this.w= w; this.h= h; selectedColor =color(280,100,100); defaultColor =color(280,50,50); currentColor = defaultColor; ///button is off to begin with, so use default color selected =false;this.label= label; }Button( float _x,float y,float w,float h, color onColor, color offColor,String label){ x = _x; //set value for class variable x, using parameter _xthis.y= y;this.w= w; this.h= h; selectedColor = onColor; defaultColor = offColor; currentColor = defaultColor; ///button is off to begin with, so use default color selected =false;this.label= label; }////Class Methodsvoiddisplay(){fill(currentColor);rect( x, y, w, h);fill(0); //blacktextAlign(CENTER);textSize(20);text(label, x + w/2, y + h/2); //display label }//checks to see if mouse is within the button geometry//returns the final selected state of button //true or falsebooleanclicked(int mx,int my){if( mx > x && mx < x+w && my >y && my < y+h){ //button has been clicked selected =! selected; //change to opposite valueif( selected ){ //now set to selected is true currentColor = selectedColor; }else{ //not selected currentColor = defaultColor; } //end else } //end outer ifreturn selected; //returns true if selected } ///end of clicked//sets the button to off statevoidreset(){ selected =false; currentColor = defaultColor; }//allows us to set a button as active via codevoidsetActive(){ selected =true; currentColor = selectedColor; }} ///end of the Button Class