Why do you want to spawn a new frame from an existing frame? It is a good idea to use Dialogs in such scenarios. Check out JDialog and JOptionPane API. The JOPtionPane#showXXXDialog accepts an Object as the dialog content. So you can even considering passing a JPanel with other controls as its children
How to load data is a design question. I usually define a sequence in my constructor, where the components are initialized, then laid out on the parent container using appropriate layouts. If I plan to use the same UI to display details of multiple objects, I have a method which accepts the objects, and changes the values inside the components. That way I do not need to initialize and re-layout the components every time.