I am trying to write a small app in Swing/AWT that requires the use of an interactive canvas. It is for building trees with complex relationships. Mostly what I am looking for is the best method for approaching this. I would like to be able to use JComponents to represent tree nodes to leverage action listeners, but components can only be added to a strict layout. I need something that I can add to the canvas and move around on the X/Y axis freely.