import java.awt.Color; import java.awt.Graphics; import java.awt.Point; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import javax.swing.JPanel; public class MyPanel extends JPanel { private ArrayList point; public MyPanel() { point = new ArrayList(); // Anonymous class. this.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { // Check whether the left mouse button is clicked if (e.getButton() == MouseEvent.BUTTON1) { // store the point which been clicked point.add(e.getPoint()); // get the coordinate System.out.println("(" + e.getX() + "," + e.getY() + ")"); } } }); } @Override protected void paintComponent(Graphics g) { // must clean the panel before drawing on it. super.paintComponent(g); g.setColor(Color.RED); for (int i = 0; i < point.size(); i++) { g.drawRect((int) point.get(i).getX(), (int) point.get(i).getY(), 1, 1); if (i > 0) { // connect next point g.drawLine((int) point.get(i).getX(), (int) point.get(i).getY(), (int) point.get(i - 1).getX(), (int) point.get(i - 1).getY()); } } // draw the red square repaint(); } }