47 lines
1.2 KiB
Java
47 lines
1.2 KiB
Java
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> point;
|
|
|
|
public MyPanel() {
|
|
point = new ArrayList<Point>();
|
|
// 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();
|
|
}
|
|
}
|