Здравствуйте, я пытаюсь запустить событие каждые 10 миллисекунд при условиях обнаружения перетаскивания, но мышь не была выпущена. Ниже приведен код, который я хочу запустить.Увольнение события каждые 10 миллисекунд при определенном условии Javafx
mapScroll.addEventFilter(MouseEvent.MOUSE_DRAGGED, e -> {
endX = e.getX();
endY = e.getY();
Bounds viewBounds = mapScroll.getViewportBounds();
double startEndX = startX - endX;
double startEndY = startY - endY;
Bounds contentBounds = mapScroll.getContent().getLayoutBounds();
double hChange = startEndX/(contentBounds.getWidth() - viewBounds.getWidth());
double vChange = startEndY/(contentBounds.getHeight() - viewBounds.getHeight());
mapScroll.setHvalue(mapScroll.getHvalue() + hChange);
mapScroll.setVvalue(mapScroll.getVvalue() + vChange);
startX = endX;
startY = endY;
});
К сожалению, до того, как я попытался использовать запланированную службу исполнителя в рамках мероприятия, но это не сработало правильно.
Я не уверен, что этот вопрос имеет смысл. Фильтр событий, который у вас уже есть, будет выполняться один раз за импульс, если мышь перетаскивается и меняет местоположение во время этого импульса, то есть будет выполняться так быстро, как система может обнаруживать изменения в местоположении мыши и отвечать на них. Каждые 10 мс (100 Гц) немного быстрее целевой частоты пульса для JavaFX (это 60 Гц), поэтому не все изменения, которые вы делаете на панели прокрутки, будут отображаться в любом случае (иногда два изменения происходят в одном и том же импульсе). Что ты пытаешься сделать? –
@James_D Я думаю, что он пытается что-то сделать, например, когда вы перетаскиваете файл или папку в проводнике Windows и имеет множество файлов по вертикали или по горизонтали, полоса прокрутки перемещается вертикально или горизонтально в зависимости от положения мыши (если мышь достигла конца окна по вертикали или по горизонтали), чтобы вы могли видеть и другие файлы. – GOXR3PLUS
Теоретически он должен быстро это обновить, но на практике он перемещается в заметных прыжках, что не то, что я хочу. Я знаю, что это не мой компьютер, так как программа мало влияет на процент моего процессора, который я использую, или на мою RAM. Я сомневаюсь, что это проблема с моим кодом, поскольку такая же проблема присутствовала в 'set Pannable (true);' так что ... сложный материал заставляет его работать не так хорошо. –