Well, there are a lot of drag and drop libraries that can help you with basic DnD, I suggest starting there (for example, jQuery UI). After that it's a matter of positioning and rendering elements. It's really a deep topic, perhaps do some studying of an interface builder like Glade to see how they do certain things. For component object model stuff I really like AWT and Swing.