}
// NOTE: All 'addFooListener(...)' below ignore null argument. No need to check ourself.
if (owner instanceof JDesktopPane) {
final JInternalFrame frame = new JInternalFrame(title, true, true, true, true);
frame.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
frame.addInternalFrameListener(InternalWindowListener.wrap(listener));
((JDesktopPane) owner).add(frame);
frame.getContentPane().add(panel);
frame.pack();
return frame;
}