import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Point; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.ArrayList; import javax.swing.JComponent; import javax.swing.JFrame; public class ClickComponent extends JComponent implements MouseListener { private ArrayList centers; public ClickComponent() { centers = new ArrayList(); addMouseListener(this); setPreferredSize(new Dimension(250, 250)); } public void paintComponent(Graphics g) { g.setColor(Color.WHITE); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(new Color(0, 128, 0)); for(int i = 0; i < centers.size(); i++) { Point p = centers.get(i); int px = (int) Math.round(p.getX()); int py = (int) Math.round(p.getY()); g.fillOval(px - 10, py - 10, 20, 20); } } public void mousePressed(MouseEvent e) { centers.add(new Point(e.getX(), e.getY())); repaint(); } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseClicked(MouseEvent e) { } public static void main(String[] args) { JFrame frame = new JFrame("Click Component"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contents = frame.getContentPane(); contents.add(new ClickComponent()); frame.pack(); frame.setVisible(true); } }