Try something like this. you must pinpoint the starting point. The starting point is the minutes x and y of the points of the 1st and last mouse coordinates.
Here are the steps to solve this problem.
- take the first coordinate when you click x, y
- take the last coordinates when dragging with the mouse x2, y2
- take min x and y coordinates as the starting point for drawRect
Math.min(x,x2); - use the absolute value of the coordinate difference to calculate the height and width of the rectangle.
Math.abs(x-x2);
code
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class DrawRect extends JPanel { int x, y, x2, y2; public static void main(String[] args) { JFrame f = new JFrame("Draw Box Mouse 2"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setContentPane(new DrawRect()); f.setSize(300, 300); f.setVisible(true); } DrawRect() { x = y = x2 = y2 = 0;
source share