add lab11
This commit is contained in:
46
lab/lab11/Question4/MyPanel.java
Normal file
46
lab/lab11/Question4/MyPanel.java
Normal file
@@ -0,0 +1,46 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user