You can try the following approach:
@Override public void start(Stage primaryStage) { Group root = new Group(); // CREATE CANVAS final Canvas canvas = new Canvas(300, 250); // GET GRAPHICS CONTEXT final GraphicsContext gc = canvas.getGraphicsContext2D(); // DRAW THE SHAPE (LINE) gc.beginPath(); gc.moveTo(50, 50); //Begin gc.lineTo(150, 200); //End gc.closePath(); // CREATE THE LINEAR EFFECT LinearGradient lg = new LinearGradient(0, 0, 1, 1, true, CycleMethod.REFLECT, new Stop(0.0, Color.RED), new Stop(0.5, Color.GREEN), new Stop(1.0, Color.BLUE)); // SET & STROKE WITH LINEAR gc.setLineWidth(20); gc.setStroke(lg); gc.stroke(); //ADD CANVAS NODE TO ROOT root.getChildren().add(canvas); primaryStage.setScene(new Scene(root)); primaryStage.show(); }
source share