Приложение Java: событие mouseDragged не выполняется достаточно часто - PullRequest
1 голос
/ 31 июля 2011

Есть ли способ сделать событие MouseDragged более частым (В моем случае рисование цвета? Мне это нужно для плавного рисования, потому что сейчас, если вы двигаетесь слишком быстро, оно не рисует весь мой путьКроме того, у меня есть 2D-массив, хранящий цвет пикселя, так что это также проблематично, если я попытаюсь решить проблему другим способом, поэтому я подумал, что повышение частоты мыши с перетаскиванием будет лучшим решением

Спасибо

Ответы [ 2 ]

1 голос
/ 31 июля 2011

Если вы хотите плавного рисования, вам, вероятно, придется интерполировать данные самостоятельно.Если вы получаете событие в (3,3), а другое в (10,10), вы можете измерить наклон между ними и пройти через логические точки, по которым мышь нужно было перетащить, чтобы перейти от (3,3) к(10,10)

Я не знаю способа заставить mouseDragged обновлять быстрее, и если, например, система была под высокой нагрузкой или кто-то использовал сенсорный экран, вы могли бы получить огромные скачкиво всяком случае.

0 голосов
/ 31 июля 2011

Если вы рисуете овалы в виде цветных линий, измените их на линии:

ArrayList<> colors;

mousepressed(Event e) {
    startPoint = e.getPoint();
}

mousedragged(Event e) {
    colors.add(new Color(startPoint, e.getPoint);
    startPoint = e.getPoint();
}

class Color() {

    Color(Point start, Point end) {
        // ...
    }

    paint(Graphics g) {
        g.drawLine(start, end);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...