Как сделать "Резиновую линию"? - Java
Формулировка задачи:
ТАК у меня не получается стереть линии которые оставляет моя резиновая линия. Вроде вызываю repaint(); перерисовать. Да что то не работает Помогите пожалуйста.
private void canvas1MouseClicked(java.awt.event.MouseEvent evt) {
Graphics g = canvas1.getGraphics(); //Создаем объект Graphics
g.setColor(Color.BLUE); // устанавливаем текущий цвет
switch(drMode)
{
case Ribbon:
if (evt.getButton() == MouseEvent.BUTTON1)
{
PointsList.add(new Point(evt.getX(), evt.getY())); // Создаем объект вершины и добавляем ее в список вершин
}
else
{
if(PointsList.size() > 0) //Проверяем: если в списке есть хотя бы одна вершина
{
repaint();
g.drawLine(PointsList.get(PointsList.size()-1).x,PointsList.get(PointsList.size()-1).y,PointsList.get(0).x, PointsList.get(0).y ); //соединяем первую вершину с последней
PointsList.clear(); // Очистка списка вершин с целью его подготовки к работе со следующей фиурой
}
}
break;
}
g.dispose();//Освобождаем ресурсы объекта Graphics
}
private void canvas1MouseMoved(java.awt.event.MouseEvent evt) {
Graphics g = canvas1.getGraphics(); //Создаем объект Graphics
g.setColor(Color.BLUE); // устанавливаем текущий цвет
switch(drMode)
{
case Ribbon:
if(PointsList.size() < 1)
{
break;
}
repaint();
g.drawLine(PointsList.get(PointsList.size()-1).x,PointsList.get(PointsList.size()-1).y, evt.getX(), evt.getY());
break;
default: break;
}
g.dispose();
}Решение задачи: «Как сделать "Резиновую линию"?»
textual
Листинг программы
g.drawLine(PointsList.get(PointsList.size()-1).x,PointsList.get(PointsList.size()-1).y, evt.getX(), evt.getY());