Мне кажется, я понимаю, в чем твоя проблема. У вас есть пользователь щелкает в двух разных местах на холсте, а затем вы хотите нарисовать прямоугольник / овал, используя эти точки. Поэтому, если пользователь щелкает 10,10, а затем 20,20, вам нужен прямоугольник, левый верхний угол которого 10,10, а нижний правый угол 20,20.
Если это действительно то, о чем вы спрашиваете, то вот мое предлагаемое решение:
Event e1 = (the first click)
Event e2 = (the second click)
// Figure out where the user clicked
int x1 = (int)e1.getX();
int y1 = (int)e1.getY();
int x2 = (int)e2.getX();
int y2 = (int)e2.getY();
int xCoord;
int yCoord;
// Figure out the coordinates
if(x1 < x2)
xCoord = x1;
else
xCoord = x2;
if(y1 < y2)
yCoord = y1;
else
yCoord = y2;
// Figure out the size of the object
int width = Math.abs(x1 - x2);
int height = Math.abs(y1 - y2);
// Finally draw your objects
g2d.drawRect(xCoord, yCoord, width, height);
g2d.drawOval(xCoord, yCoord, width, height);
Это должно сработать для вас, исходя из моего понимания вашего вопроса.