Я создаю небольшую программу рисования с использованием JavaFX. Я успешно реализовал бесплатный рисунок на холсте. Тем не менее, я также хочу, чтобы иметь возможность рисовать прямые линии от точки, на которую я нажимаю, когда моя мышь нажата. Я создаю строку заранее, однако я не могу переключить контекст, чтобы рисовать прямые линии вместо свободного рисования.Попытка переключить контекст GraphicsContext в JavaFX
На данный момент, если бы я нажал кнопку «Прямая линия», она нарисовала одну прямую линию, а затем по умолчанию вернулась к свободному рисунку, бросая много ошибок. Не могли бы вы помочь?
Вот мой код для свободного рисования:
paintScene.setOnMousePressed(e -> {
gc.beginPath();
gc.lineTo(e.getSceneX(), e.getSceneY());
gc.stroke();
});
paintScene.setOnMouseDragged(e -> {
gc.lineTo(e.getSceneX(), e.getSceneY());
gc.stroke();
});
(где дс является GraphicsContext)
Это мой создать прямую функциональность линии:
Line l = new Line(20, 30, 30, 20);
l.setStroke(Color.BLACK);
l.setStrokeWidth(10);
straightLineBtn.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
paintScene.setOnMousePressed(event1 -> {
canvasHolder.getChildren().addAll(l);
});
}
});
Вы можете создать [MCVE] (http://stackoverflow.com/help/mcve) для нас, чтобы проверить вашу проблему? – ItachiUchiha