Как сделать "Резиновую линию"? - 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());

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.462 из 5
Похожие ответы