title: Custom JComponent not displaying in Custom JPanel
body: <p>I've tried the add() method but nothing is displayed when I try to add Test to GraphicsTest. How should I be adding it? Can someone show me? I've included the code I'm using.</p>
  
  <p>This is my way and it's not working. Can someone show me or make me aware of what the problem actually is?</p>
  
  <pre><code>import java.awt.Color;
  import java.awt.Graphics;
  import java.awt.Graphics2D;
  import javax.swing.JComponent;
  
  public class Test extends JComponent
  {
      @Override
      public void paintComponent(Graphics g)
      {
          super.paintComponent(g);
          Graphics2D g2d = (Graphics2D) g.create();
          g2d.setColor(Color.red);
          g2d.drawString("Hello", 50, 50);
          g2d.dispose();
      }
  }
  </code></pre>
  
  <p>Here is the other class:</p>
  
  <pre><code>   import java.awt.Color;
     import java.awt.Graphics;
     import java.awt.Graphics2D;
     import java.awt.geom.Rectangle2D;
     import javax.swing.JPanel;
  
     public class GraphicsTest extends JPanel
     {
         private Graphics2D g2d;
         private String state;
         private int x, y;
  
     GraphicsTest()
     {
         Test t = new Test();
         t.setVisible(true);
         add(t);
     }
  
     @Override
     public void paintComponent(Graphics g)
     {
         super.paintComponent(g);
         g2d = (Graphics2D) g;
  
         g2d.setColor(Color.BLACK);
         g2d.drawString("STATE: " + state, 5, 15);
         g2d.drawString("Mouse Position: " + x + ", " + y, 5, 30);
  
         g2d.setColor(Color.red);
         Rectangle2D r2d = new Rectangle2D.Double(x, y, 10, 10);
         g2d.draw(r2d);
  
         g2d.dispose();
      }
  
      public void setState(String state) { this.state = state; }
      public String getState() { return state; }
      public void setX(int x) { this.x = x; repaint(); }
      public void setY(int y) { this.y = y; repaint(); }
  }
  </code></pre>