dibujar objetos de forma en java (arrastrable, redimensionable y puede rotar)

Estoy tratando de dibujar formas (triángulo, rectángulo, cuadrado y círculo) que se pueden usar para crear una imagen. Un usuario debe poder colocar una forma en un lienzo y arrastrarla o incluso agrandarla para crear una imagen deseada.

Traté de anular elpaintComponent() de unJPanel para lograr esto, pero tenga en cuenta que la forma de Jpanels sigue siendo un cuadrado, por lo que cuando tiene un círculo todavía puede arrastrarlo incluso si no lo toca necesariamente, ya que está dentro de un cuadrado y también tiene dificultades para dibujar el triángulo

¿Qué bibliotecas sugerirías?

Respuestas a la pregunta(1)

Su respuesta a la pregunta