Да, в проверке размера списка есть -2, но я думаю, что вы должны увеличить i на 2 единицы:
i += 2;
для достижения желаемых результатов.
Попробуйте это:
for(int i = 0 ; i < Points.size()-2;i+=2)
{
Point p1 = Points.get(i);
Point p2 = Points.get(i+1);
g.drawLine(p1.x, p1.y, p2.x, p2.y);
}
EDIT:
Глядя на тебя, картинка не кажется, что линии связаны между собой. Я вижу пробелы между вашими строками.
Вероятно, mouseDragged - это не правильный метод для использования. Он генерирует множество событий MouseEvent, в результате чего ваш код рисует множество разрозненных линий, одна из которых близка к другим
Попробуйте сделать то же самое с помощью метода MousePressed или MouseClicked. Я думаю, вы увидите, что ваш код сейчас правильный.
совет:
в соглашениях Java поле и переменные должны начинаться с строчной буквы, поэтому измените объявление Points следующим образом:
ArrayList<Point> points = new ArrayList<Point>();