title: Add an External Frame in a JDesktopPane Java
body: <p>I have a Frame called " Menu_Project".</p>
  
  <p>I have another Frame called "Main_Menu" where it has a JButton and upon clicking on the Button, I want to call the frame " Menu_Project" inside the JDesktopPane. I tried a to follow a tutorial on YouTube at this link: <a href="https://www.youtube.com/watch?v=TUL3qEoZkR4" rel="nofollow">https://www.youtube.com/watch?v=TUL3qEoZkR4</a></p>
  
  <p>When I run it, I get:</p>
  
  <pre><code> " Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container"
  </code></pre>
  
  <p>My Codes:</p>
  
  <pre><code>import java.awt.BorderLayout;
  
  
  public class Menu extends JFrame {
  
  private JPanel contentPane;
  private JDesktopPane desktopPane;
  private JButton btnNewButton;
  private Menu_Modifications_Single m1; //The Frame to be added
  /**
   * Launch the application.
   */
  public static void main(String[] args) {
      EventQueue.invokeLater(new Runnable() {
          public void run() {
              try {
                  Menu frame = new Menu();
                  frame.setVisible(true);
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      });
  }
  
  /**
   * Create the frame.
   */
  public Menu() {
      initComponents();
      createEvents();
  }
  private void initComponents(){
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setBounds(100, 100, 1706, 995);
      contentPane = new JPanel();
      contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
      setContentPane(contentPane);
  
      btnNewButton = new JButton("Analyze Single");
  
  
      desktopPane = new JDesktopPane();
      desktopPane.setBackground(SystemColor.window);
      GroupLayout gl_contentPane = new GroupLayout(contentPane);
      gl_contentPane.setHorizontalGroup(
          gl_contentPane.createParallelGroup(Alignment.LEADING)
              .addGroup(Alignment.TRAILING, gl_contentPane.createSequentialGroup()
                  .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                  .addComponent(desktopPane, GroupLayout.PREFERRED_SIZE, 1597, GroupLayout.PREFERRED_SIZE))
              .addGroup(gl_contentPane.createSequentialGroup()
                  .addContainerGap()
                  .addComponent(btnNewButton)
                  .addContainerGap(1496, Short.MAX_VALUE))
      );
      gl_contentPane.setVerticalGroup(
          gl_contentPane.createParallelGroup(Alignment.LEADING)
              .addGroup(gl_contentPane.createSequentialGroup()
                  .addComponent(btnNewButton)
                  .addGap(18)
                  .addComponent(desktopPane, GroupLayout.DEFAULT_SIZE, 823, Short.MAX_VALUE))
      );
      GroupLayout gl_desktopPane = new GroupLayout(desktopPane);
      gl_desktopPane.setHorizontalGroup(
          gl_desktopPane.createParallelGroup(Alignment.LEADING)
              .addGap(0, 1597, Short.MAX_VALUE)
      );
      gl_desktopPane.setVerticalGroup(
          gl_desktopPane.createParallelGroup(Alignment.LEADING)
              .addGap(0, 823, Short.MAX_VALUE)
      );
      desktopPane.setLayout(gl_desktopPane);
      contentPane.setLayout(gl_contentPane);
  }
  private void createEvents(){
      btnNewButton.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent arg0) {
              if(m1==null){
              m1 =  new Menu_Modifications_Single();
              desktopPane.add(m1);
  
              }
          }
      });
  
  }
  }
  </code></pre>
  
  <p>Can anyone point out where am wrong.Am following the video Tutorial.</p>