Can Swing components be generated dynamically at run time? A simple example would be, a mouse-click inside a Text Field would draw a new Text Field. Again, a mouse-click inside this new Text Field would draw a new Text Field again. There is no limit on number of created Text Fields.
I would suggest experimenting with an ArrayList<JTextField>. Add a listener to your first one and in the actionPerformed method add a new JTextField to the ArrayList as well as set up it's listener and add it to the panel. Just a thought, I haven't really ever tried to do something like this.