Как сделать, чтобы курсор перескакивал в конец?

Рейтинг: 0Ответов: 1Опубликовано: 19.12.2014

Хочу научиться вводить числа с клавиатуры. Например, пусть надо ввести координаты двух точек. Программка, текст которой внизу, делает это неудобным образом. Вот что мне не нравится:

  1. После начала работы программы курсор в консоли не активный. Нужно активизировать через мышку.
  2. После ввода первой пары чисел и нажатия ввода появляется строка "Enter point2's x-, y-coordinates: " и курсор находиться перед первым символом (т.е. перед 'E'), а не в конце этой строки.

Как это исправить, особенно 2-й момент? Или это особенности среды Eclipse?

package dzmitrok;
import javafx.geometry.*;
import java.util.Scanner;

public class TwoLineOnPlane {
public static void main(String[] args) {
    Scanner myinput = new Scanner(System.in);
    System.out.print("Enter point1's x-, y-coordinates: ");
    double x1 = myinput.nextDouble();
    double y1 = myinput.nextDouble();
    System.out.print("Enter point2's x-, y-coordinates: ");
    double x2 = myinput.nextDouble();
    double y2 = myinput.nextDouble();
    Point2D p1 = new Point2D(x1, y1);
    Point2D p2 = new Point2D(x2, y2);
    System.out.println("Point1: " + p1.toString());
    System.out.println("Point2: " + p2.toString());
}
}

Ответы

▲ 1

Какая у Вас операционная система, а особенно эмулятор терминала?
Я только что проверил, все работает.

По поводу первого вопроса. Если Вы работаете в какой-то программе, одновременно у Вас фокус может быть только на одной программе, соответственно, когда Вы запускаете терминал/консоль, то фокус у Вас остается на IDЕ (если же Вы, конечно, не из терминала компилируете все), поэтому при запуске Вы остаетесь в Вашей ИДЕ, и для того чтобы ввести данные, нужно, соответсвенно, клацнуть мышкой на терминале для получения фокуса. И это зависит уже не от Вашей программы, а от работы оконной системы.

На счет второго вопроса. У меня все работает, скорее всего, у Вас эмулятор терминала не правильно работает, насколько я понял, у Вас курсор после ввода первого чила не появляется после ":", а в начале этой строки, то есть перед фразой с просьбой ввести данные?
Может, Вы некорректные данные ввели просто, и после ошибки курсор переместился. У Вас же нету поверки на корректность ввода.

Вот, если что, мой код, точнее скопированный Ваш - все работает:

import javafx.geometry.Point2D;

import java.util.Scanner;

/**
 * Created by crosp on 12/19/14.
 */
public class TwoLineOnPlane {
    public static void main(String[] args) {
        Scanner myinput = new Scanner(System.in);
        System.out.print("Enter point1's x-, y-coordinates: ");
        double x1 = myinput.nextDouble();
        double y1 = myinput.nextDouble();
        System.out.print("Enter point2's x-, y-coordinates: ");
        double x2 = myinput.nextDouble();
        double y2 = myinput.nextDouble();
        Point2D p1 = new Point2D(x1, y1);
        Point2D p2 = new Point2D(x2, y2);
        System.out.println("Point1: " + p1.toString());
        System.out.println("Point2: " + p2.toString());
    }
}