Scale and place text explanations on images

You are supposed to create a standalone application which should load images in Java supported formats and enable the user to place text explanations over it in text boxes and baloons.
The explanation can be transparent or with user defined colors for lines and fill.
A hint on the shapes can be found in what MSWord drawing component can do in this matter.
All elements added must be removable/modifiable till the user exits the application.
The user should be able to save the modified image in Java supported formats.