Arrastra y mueve una imagen dentro de un JLabel con un clic del mouse

Tengo una imagen dentro de una JLabel.

JLabel label = new JLabel(new ImageIcon("C:\\image.jpg"));
label.setSize(300,300);

Quiero la siguiente funcionalidad.

-Hago clic en una ubicación dentro de la JLabel (en la imagen).

-Con el botón del mouse presionado, puedo cambiar la ubicación de la imagen dentro de la JLabel. (Arrastro la imagen a diferentes posiciones dentro de la JLabel)

Bueno, esto significa que en muchos casos la imagen será recortada y fuera de la vista.

Por favor, dime cómo implementar esta funcionalidad?

¿Cuáles son los oyentes de eventos correctos para agregar a mi JLabel?

Respuestas a la pregunta(3)

Su respuesta a la pregunta