Let's provide the answer to the question asked in the morning. 

Consider the following updated JComponent: 

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class Circle extends JComponent implements MouseListener {
  public void mouseEntered( MouseEvent e) { }
  public void mouseExited(  MouseEvent e) { }
  public void mousePressed( MouseEvent e) { 
    this.repaint();
  }
  public void mouseReleased(MouseEvent e) { }
  public void mouseClicked( MouseEvent e) { }
  String name;
  int x, y, width, height; 
  public Circle(int x, int y, String name, int width, int height) {
    this.addMouseListener(this); 
    this.x = x; 
    this.y = y; 
    this.name = name; 
    this.width = width;
    this.height = height; 
  }
  int count = 0; 
  public void paintComponent(Graphics g) {
    System.out.println( this.name + ": " + this.count++ ); 
    g.drawString(this.name + ":" + this.count, 20, 20); // this.x, this.y);     
    g.drawRect(0, 0, this.getWidth()-1, this.getHeight()-1); 
  }
}

Here's how we create and show two instances of this:

import javax.swing.*; 
import java.awt.*; 

public class Two extends JFrame {
  public Two() {
    Container c = this.getContentPane(); 
    c.setLayout(null); 
    Circle a = new Circle(150, 280, "Dan"   , 120, 30);
    Circle b = new Circle( 50,  80, "Adrian", 120, 30);
    a.setBounds(a.x, a.y, a.width, a.height);       
    c.add(a); 
    b.setBounds(b.x, b.y, b.width, b.height);       
    c.add(b); 
    this.setSize(300, 400); 
    this.setVisible(true);     
  }
  public static void main(String[] args) {
    Two a = new Two();  
  }
}

We disable the layout manager, set the bounds, add the components to the content pane. 

--

Recall (and compare) the benchmark for the actual goal: 

http://silo.cs.indiana.edu:8346/fall2012/c212/final/Drawing.java.phps

--

Misato Daniel R Katherine Jillian Patrick Santiago Yibo Iris Tao John 
Nicholas Noah Keiland Stuart Jiang Bihan Elise Khalea Taylor