import javafx.scene.canvas.GraphicsContext;
public class Rectangle extends FillableShape {
private double width, height;
public Rectangle() {
this.width = 1;
this.height = 1;
}
public Rectangle(double width_, double height_) {
if (width_ < 0) {
this.width = 1;
} else {
this.width = width_;
}
if (height < 0) {
this.height = 1;
} else {
this.height = height_;
}
}
public double getWidth() {
return this.width;
}
public void setWidth(double width_) {
if (width_ < 0) {
this.width = 1;
} else {
this.width = width_;
}
}
public double getHeight() {
return this.height;
}
public void setHeight(double height_) {
if (height < 0) {
this.height = 1;
} else {
this.height = height_;
}
}
@Override
public void paint(GraphicsContext graphix){
graphix.setStroke(super.getColor());
if(this.isFilled() == true){
graphix.setFill(super.getColor());
graphix.fillRect(super.getX(), super.getY(), width, height);
}else{
graphix.strokeRect(super.getX(), super.getY(), width, height);
}
}
@Override
public void constrain(double sizeOfCanvasX, double sizeOfCanvasY, double sizeOfCanvasWidth, double sizeOfCanvasHeight){
if(super.getX() < sizeOfCanvasX) {
super.setVelocity(-super.getDx(),super.getDy());
} else if (super.getX() > (sizeOfCanvasWidth-this.width)) {
super.setVelocity(-super.getDx(),super.getDy());
}
if (super.getY() < sizeOfCanvasY) {
super.setVelocity(super.getDx(),-super.getDy());
} else if (super.getY() > (sizeOfCanvasHeight-this.height)) {
super.setVelocity(super.getDx(),-super.getDy());
}
}
public String toString() {
String info = "Height: " + height + " Width: " + width;
return info;
}
}
Comments