Проблема в том, что вы используете команды сканера, которые не достигают возврата каретки. Вам нужно изменить подход. Лучше всего, если вы прочитаете текст из входных данных, а затем подтвердите предоставленный текст, чтобы убедиться, что он соответствует вашим критериям. Вы можете также рассмотреть вопрос об использовании класса java.io.Console (хотя, если вы используете Eclipse, у вас будут проблемы с работой этого класса, В Eclipse есть ошибка, связанная с выделением консоли ) .
Например, чтобы узнать количество точек, вы можете сделать это следующим образом со своим сканером:
System.out.print("Number of points: ");
int num = Integer.valueOf(scanner.nextLine());
И чтобы прочитать каждую координату, опять же, вы можете прочитать ее в одной строке и затем проверить аргументы:
String arguments = scanner.nextLine();
String[] coordinates = arguments.split(" ");
int x = Integer.valueOf(coordinates[0]);
int y = Integer.valueOf(coordinates[1]);
Point p = new Point(x, y);
Вам потребуется написать несколько строк кода для проверки правильности ввода пользователем. Начните с написания кода, как если бы ничего не пошло не так, а затем украсьте его некоторыми проверками ввода пользователя.