title: Why are my panels not showing up in the JFrame
body: <pre><code>public class InputPanel extends JPanel{
      public static int shapeType; //1: Rectangle; 2: Oval; 3: Line
      public static boolean isFilled; //whether or not the shape is filled
      public static Color color; //color of the shape
  
      public InputPanel(){
  
          JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
          panel.setBackground(Color.GRAY);
          setPreferredSize(new Dimension(200,500));
  
          JButton rect = new JButton("Rectangle");
          JButton oval = new JButton("Oval");
          JButton line = new JButton("Line");
          JRadioButton fill = new JRadioButton("Filled:");
          JButton color1 = new JButton("Color..");
  
          rect.addActionListener(new rectListener());
          oval.addActionListener(new ovalListener());
          line.addActionListener(new lineListener());
          isFilled = fill.isSelected();
          color1.addActionListener(new colorListener());
  
          panel.add(rect);
          panel.add(oval);
          panel.add(line);
          panel.add(fill);
          panel.add(color1);
  
          this.setVisible(true);
  
      }
  }
  
  
  
  public class PaintPanel extends JPanel{
  
      public static int x1, y1, x2, y2;
  
      ArrayList&lt;Shape&gt; shapeList = new ArrayList&lt;Shape&gt;();
  
      public PaintPanel(){
  
          JPanel panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
          panel.setBackground(Color.WHITE);
          setPreferredSize(new Dimension(500, 500));
  
          this.addMouseListener(new MouseAdapter() {
          @Override public void mousePressed(MouseEvent e) {
              PaintPanel.x1 = e.getX();
              PaintPanel.y1 = e.getY();
          }
  
          @Override public void mouseReleased(MouseEvent e) {
              PaintPanel.x2 = e.getX();
              PaintPanel.y2 = e.getY();
              if(InputPanel.shapeType == 1){
                  shapeList.add(new Rectangle(PaintPanel.x1, PaintPanel.y1, PaintPanel.x2, PaintPanel.y2, InputPanel.isFilled));
              }
              if(InputPanel.shapeType == 2){
                  shapeList.add(new Oval(PaintPanel.x1, PaintPanel.y1, PaintPanel.x2, PaintPanel.y2, InputPanel.isFilled));
              }   
              if(InputPanel.shapeType == 3){
                  shapeList.add(new Line(PaintPanel.x1, PaintPanel.y1, PaintPanel.x2, PaintPanel.y2));
              }
              repaint();
          }
        });
  
       this.setVisible(true);   
      }
  
      @Override 
      public void paintComponent(Graphics g){
          super.paintComponent(g);
  
          for(Shape s : shapeList){
              s.draw(g);
          }
      }
  
  }
  
  public class PaintGUI {
  
      public static void main(String[] args){
  
          JFrame frame = new JFrame("Shape Drawer!");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
          frame.add(new InputPanel());
          frame.add(new PaintPanel());
  
          frame.pack();
  
          frame.setVisible(true);
  
      }
  
  }
  </code></pre>
  
  <p>I'm positive I've created the JFrame properly and all of my other classes work, but there must be something in here I'm missing...
  When I run the main method all I get is a gray box that is clearly a square (500x500, as instantiated in the PaintPanel class. What am I doing wrong?</p>