Java Swing рисует линии с помощью мыши и перетаскивает
Я хочу вернуть вопрос, который был задан ранее:Java рисовать линии, как мышь перемещается
«Я хотел бы добавить в свое приложение функцию, которая позволяет пользователю рисовать прямую линию, щелкая мышью в начальной точке и освобождая ее в конечной точке. Линия должна двигаться по мере движения мыши до тех пор, пока она не будет отпущена; аналогично тому, как линия может быть нарисована с помощью приложения Microsoft Paint.
Как можно реализовать это так, чтобы линия перекрашивалась по мере движения, не перекрашивая другие объекты, которые уже могут быть нарисованы в этой прямоугольной области? "
Вопрос: Как я могу нарисовать несколько линий со старыми линиями, которые еще там?
Это код, который работает для меня, но предыдущая строка стирается, как только вы рисуете новую:
public static void main(String args[]) throws Exception {
JFrame f = new JFrame("Draw a Red Line");
f.setSize(300, 300);
f.setLocation(300, 300);
f.setResizable(false);
JPanel p = new JPanel() {
Point pointStart = null;
Point pointEnd = null;
{
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
pointStart = e.getPoint();
}
public void mouseReleased(MouseEvent e) {
pointStart = null;
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseMoved(MouseEvent e) {
pointEnd = e.getPoint();
}
public void mouseDragged(MouseEvent e) {
pointEnd = e.getPoint();
repaint();
}
});
}
public void paint(Graphics g) {
super.paint(g);
if (pointStart != null) {
g.setColor(Color.RED);
g.drawLine(pointStart.x, pointStart.y, pointEnd.x, pointEnd.y);
}
}
};
f.add(p);
f.setVisible(true);
}