I am in the process of designing a small scale Java Editor which will give the user basic functionality to insert and edit images as well as basic drawing tools.

I've looked at various implementations and am uncertain as to the best method of doing this. Following features should ideally be supported:

- multiple images with drag and drop functionality (within the workspace panel)
- drawing basic shapes
- textboxes with font size/colour control

I would welcome any advice that people may have on how to best go about doing this e.g. images in seperate JLabels or JPanels? Links to relevant tutorials/code examples would also be helpful.