Canvas, рисование мышью - Java
Формулировка задачи:
Добрый вечер, товарищи. Собственно, не так давно я решил познакомиться поближе с JavaFX, и в качестве пробного проекта выбрал простую рисовалку. Столкнулся с проблемой, которую не могу решить.
gc, соответственно, GraphicsContext. Проблема вся в том, что если я рисую через Path, т.е. начинаю с beginPath() и заканчиваю с closePath(), то рисование идёт точками, но сохраняется фигура, и, естественно, при новом вызове данного события не обновляется всё старое(если я почистил), а если я использую как-то так(ниже), то идёт чёткая линия за курсором, но при повторном вызове события, естественно, от последней точки до текущей идёт прямая линия(если вставить gc.moveTo перед gc.lineTo, то точки снова появляются)
Думал как-то обработать через setOnMouseDragEntered, но никакого толку это не принесло. Есть идеи?
myCanvas.setOnMouseDragged((MouseDragEvent) -> {
if(rootLayoutEventController.pencil){
gc.beginPath();
gc.moveTo(MouseDragEvent.getX(), MouseDragEvent.getY());
gc.lineTo(MouseDragEvent.getX(), MouseDragEvent.getY());
gc.stroke();
gc.moveTo(MouseDragEvent.getX(), MouseDragEvent.getY());
gc.closePath();
}
}); myCanvas.setOnMouseDragged((MouseDragEvent) -> {
if(rootLayoutEventController.pencil){
gc.lineTo(MouseDragEvent.getX(), MouseDragEvent.getY());
gc.stroke();
gc.moveTo(MouseDragEvent.getX(), MouseDragEvent.getY());
}
});Решение задачи: «Canvas, рисование мышью»
textual
Листинг программы
gc.moveTo(MouseEvent.getX(), MouseEvent.getY());