WoW! You do have quite a chore ahead of you! I suggest you start looking into a Java based GUI builder application that has source code available and then tweek/tailor it down to fit your needs. There is an enormous amount of code required to do what you described in a professional manner. Just think of some of the things envolved; layout management, color management, perferrence management, Z-order and focus management, and, and, and etc.
Since it sounds like you are only at the Panel level, you'll need to go back to the JDK to check-out MouseListener and MouseMotionListener, Undo, and many, many,...others. Basically, code up some template "components" that get added to the target panel at the location of the mouse when the mouse button is released following a drag from the template's "tag" component that's the source of the drag operation.