我使用JavaFX創建了一個小型繪圖程序。我已經在畫布上成功實現了免費繪圖。不過,我也希望能夠從點擊時直到我的鼠標被壓下時畫出直線。我預先創建了一條線,但是我似乎無法切換上下文,因此我只繪製直線而不是自由繪圖。現在,如果我點擊我的「直線」按鈕,它將繪製一條直線,然後默認返回到自由繪圖,同時拋出很多錯誤。你能幫忙嗎?嘗試在JavaFX中切換GraphicsContext的上下文
這是我的自由繪製代碼:
paintScene.setOnMousePressed(e -> {
gc.beginPath();
gc.lineTo(e.getSceneX(), e.getSceneY());
gc.stroke();
});
paintScene.setOnMouseDragged(e -> {
gc.lineTo(e.getSceneX(), e.getSceneY());
gc.stroke();
});
(其中GC是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