1

I'm not sure if this would be a simple question to answer on here, just because I'm using the Standard Draw class written by Princeton University, and I'm not sure if it's a globally known class.

But I'd much appreciate any feedback from those familiar with the StdDraw library.

What I'm trying to do is fairly straight-forward; check to see if the mouse of the user clicks onto an input box I drew, and if it is clicked, clear the existing text (which simply says "input") to make an empty String.

This is what it looks like so far:

public boolean handleClick(double x, double y) {
 if(!super.handleClick(x,y)){
 value = false;}
 else {
   if(highlighted){
       value = true;
       StdDraw.textLeft(xCentre+0.005,yCentre," ");} //Add the label
   else{
     value = false;}
 }
   return value; //I handled it. Nobody else should.}
}//handleClick

super.handleClick(x,y) is simply a method in the super class that draws the dimensions of the box:

 public void draw(){ 
  StdDraw.setPenColor(StdDraw.WHITE);
  StdDraw.filledRectangle(xCentre,yCentre,halfWidth,halfHeight);
  StdDraw.setPenColor(StdDraw.BLACK);
  StdDraw.setPenRadius(); //Default thin line.
  StdDraw.rectangle(xCentre,yCentre,halfWidth,halfHeight);
 }

value is simply an instance variable of this class that will return true if all conditions are satisfied:

private boolean value;

highlighted is a boolean instance variable from the super class that simply states if the box is an input or output box.

My main question would be, is the line

StdDraw.textLeft(xCentre+0.005,yCentre," "); the right way to clear the existing text and create an empty String with StdDraw? As it's not clearing the line, but maybe there's a bug elsewhere in my code that I'm missing and this line should work?

kris
  • 375
  • 2
  • 12

0 Answers0