title: Java Swing blank screen instead of window displayed
body: <p>I'm following through a book called "The JFC Swing Tutorial (Second Edition)" and I'm pretty much at the start I have followed this code and it should be displaying the button and the label in the content pane, but All im getting is a blank screen. any ideas?
  Thanks.</p>
  
  <pre><code>import java.awt.GridLayout;
  import javax.swing.*;
  
  public class m extends JFrame
  {
      void UserFrame()
      {
          //JFrame.setDefaultLookAndFeelDecorated(true);
          JFrame frame = new JFrame("Hellow You");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
          JPanel jp = new JPanel(new GridLayout(0,1));
  
          //makes label
          JLabel label = new JLabel("Sup ");
          //adds to the frames content pane a label
          frame.getContentPane().add(label);
  
          JButton button = new JButton("Hai");
          frame.getContentPane().add(button);
  
  
          jp.add(button);
          jp.add(label);
  
          jp.setBorder(BorderFactory.createEmptyBorder(30,30,10,30));
  
          //pack set the window to what it needs AKA to display all components 
          frame.pack();
          //frame.setSize(250, 250);
          //shows window
          frame.setVisible(true);     
      }
  
  
  
      public static void main(String[] args)
      {
          final m window = new m();
          SwingUtilities.invokeLater(new Runnable() 
          {
              public void run()
              {
                  window.UserFrame();
              }
          });
      }
  
  }
  </code></pre>