Как сделать "Резиновую линию"? - 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());
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д