Create a rectangle from two specific points

I am trying to create a rectangle in Java , but only with awt classes.

I can only click two points, and the program should calculate the width and height and draw a rectangle between these exact two points.

The following does not work for me:

package ie.iact.shapes; import java.awt.Color; import java.awt.Graphics; import java.awt.Point; public class Rect extends Shapes {`` private Point secondPoint; public Rect(Point f, Point s) { setFirstPoint(f); setSecondPoint(s); } @Override public void draw(Graphics g) { int x1 = firstPoint.x; int y1 = firstPoint.y; int x2 = secondPoint.x; int y2 = secondPoint.y; int a; int b; if (x1 < x2) { a = x1; } else { a = x2; } if (y1 < y2) { b = y1; } else { b = y2; } int width = secondPoint.x - a; int hight = secondPoint.y - b; g.drawRect(getFirstPoint().x, getFirstPoint().y, secondPoint.x, secondPoint.y); } public Point getSecondPoint() { return secondPoint; } public void setSecondPoint(Point secondPoint) { this.secondPoint = secondPoint; } } 
+4
source share
2 answers

The Rectangle class can already handle all your calculations:

 Rectangle rect= new Rectangle(point1); rect.add(point2); g.fillRect(rect.x, rect.y, rect.width, rect.height); 
+7
source

Alternatively, you can use setFrameFromDiagonal :

 Rectangle rect= new Rectangle(); rect.setFrameFromDiagonal(point1, point2); g.fillRect(rect.x, rect.y, rect.width, rect.height); 
-1
source

Source: https://habr.com/ru/post/1480922/


All Articles