import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Line2D;
import java.util.ArrayList;
import java.util.List;
public class DrawLineDrag extends JPanel {
private List<Line2D> lines = new ArrayList<>();
private Point prevPoint;
public DrawLineDrag() {
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
prevPoint = e.getPoint();
}
});
addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
if (prevPoint != null) {
Point currentPoint = e.getPoint();
lines.add(new Line2D.Double(prevPoint, currentPoint));
prevPoint = currentPoint;
repaint();
}
}
});
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.BLACK); // Set line color
for (Line2D line : lines) {
g2d.draw(line);
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("Draw Lines");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new DrawLineDrag());
frame.setSize(400, 300);
frame.setVisible(true);
}
}
No comments:
Post a Comment