Перемещение курсора мыши по диагонали

257
17 ноября 2017, 06:20

Подскажите пожалуйста. Есть две точки экрана с целочисленными координатами, мне нужно построить диагональ между ними и по целочисленным координатам этой диагонали плавно перемещать курсор мыши с помощью Robot.

Если использовать double значения, то все более менее понятно, вычисляем длину диагонали, определяем шаг и передвигаем. Но так как точки на экране целые, то тут уже вроде не так всё просто.

Может есть какие-нибудь специальные библиотеки, или уже готовые решения?

Заранее спасибо!

Answer 1

Нашел готовое решение:

package robot;
import java.awt.*;
public class MainClass {
    public static void main(String[] args) throws Exception {
        mouseGlide(50, 50, 400, 600, 10, 1000);
    }
    private static void mouseGlide(int x1, int y1, int x2, int y2, int t, int n) {
        try {
            Robot r = new Robot();
            double dx = (x2 - x1) / ((double) n);
            double dy = (y2 - y1) / ((double) n);
            double dt = t / ((double) n);
            for (int step = 1; step <= n; step++) {
                Thread.sleep((int) dt);
                r.mouseMove((int) (x1 + dx * step), (int) (y1 + dy * step));
            }
        } catch (AWTException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

Вот источник. Правда код нуждается в доработке.

READ ALSO
Печать на принтер xls файлов из java под linux&#39;ом

Печать на принтер xls файлов из java под linux'ом

Не получается реализовать метод печати файлов екселя из java приложения, пробовал двумя способами: 1

289
IllegalFormatConversionException

IllegalFormatConversionException

почему получается исключение?

205
Как можно оптимизировать следующий код?

Как можно оптимизировать следующий код?

Собственно таких участков очень большое количество, меняется только конструктор фреймовМожно ли как то выделить этот код в метод? UPD1: Ещё...

222
Design patterns [требует правки]

Design patterns [требует правки]

To gain a popularity among the business’ competitors, GeekMoviesuz should provide a various qualities for the content on the site

237