javafx.scene.shape.Rectangle#setStroke ( )源码实例Demo

下面列出了javafx.scene.shape.Rectangle#setStroke ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: FXTutorials   文件: MenuBox.java
public MenuBox(int width, int height) {

        Rectangle bg = new Rectangle(width, height);
        bg.setFill(Colors.MENU_BG);

        Rectangle lineTop = new Rectangle(width, 2);
        lineTop.setFill(Colors.MENU_BORDER);
        lineTop.setStroke(Color.BLACK);

        Rectangle lineBot = new Rectangle(width, 2);
        lineBot.setTranslateY(height - 2);
        lineBot.setFill(Colors.MENU_BORDER);
        lineBot.setStroke(Color.BLACK);

        box = new VBox(5);
        box.setTranslateX(25);
        box.setTranslateY(25);

        getChildren().addAll(bg, lineTop, lineBot, box);
    }
 
源代码2 项目: marathonv5   文件: StrokeTransitionSample.java
public StrokeTransitionSample() {
    super(150,150);
    Rectangle rect = new Rectangle(0, 0, 150, 150);
    rect.setArcHeight(20);
    rect.setArcWidth(20);
    rect.setFill(null);
    rect.setStroke(Color.DODGERBLUE);
    rect.setStrokeWidth(10);
    getChildren().add(rect);
    
    strokeTransition = StrokeTransitionBuilder.create()
        .duration(Duration.seconds(3))
        .shape(rect)
        .fromValue(Color.RED)
        .toValue(Color.DODGERBLUE)
        .cycleCount(Timeline.INDEFINITE)
        .autoReverse(true)
        .build();
}
 
源代码3 项目: marathonv5   文件: AnchorPaneSample.java
public static Node createIconContent() {
    StackPane sp = new StackPane();
    AnchorPane anchorPane = new AnchorPane();

    Rectangle rectangle = new Rectangle(62, 62, Color.LIGHTGREY);
    rectangle.setStroke(Color.BLACK);
    anchorPane.setPrefSize(rectangle.getWidth(), rectangle.getHeight());

    Rectangle r1 = new Rectangle(14, 14, Color.web("#1c89f4"));
    Rectangle r2 = new Rectangle(45, 10, Color.web("#349b00"));
    Rectangle r3 = new Rectangle(35, 14, Color.web("#349b00"));

    anchorPane.getChildren().addAll(r1, r2, r3);
    AnchorPane.setTopAnchor(r1, Double.valueOf(1));
    AnchorPane.setLeftAnchor(r1, Double.valueOf(1));
    AnchorPane.setTopAnchor(r2, Double.valueOf(20));
    AnchorPane.setLeftAnchor(r2, Double.valueOf(1));
    AnchorPane.setBottomAnchor(r3, Double.valueOf(1));
    AnchorPane.setRightAnchor(r3, Double.valueOf(5));

    sp.getChildren().addAll(rectangle, anchorPane);
    return new Group(sp);
}
 
源代码4 项目: gef   文件: GeometryNodeOpacitySnippet.java
@Override
public Scene createScene() {
	Pane root = new Pane();
	Scene scene = new Scene(root, 300, 500);

	GeometryNode<RoundedRectangle> geometryNode = new GeometryNode<>(
			new RoundedRectangle(100, 100, 100, 100, 30, 30));
	geometryNode.setStroke(Color.TRANSPARENT);
	geometryNode.setStyle("-fx-fill: red; -fx-opacity: 0.5;");

	Rectangle rectangle = new Rectangle(100, 300, 100, 100);
	rectangle.setArcHeight(30);
	rectangle.setArcWidth(30);
	rectangle.setStroke(Color.TRANSPARENT);
	rectangle.setStyle("-fx-fill: red; -fx-opacity: 0.5;");

	root.getChildren().addAll(geometryNode, rectangle);

	return scene;
}
 
源代码5 项目: marathonv5   文件: RectangleSample.java
public RectangleSample() {
    super(180,90);
    // Simple red filled rectangle
    Rectangle rect1 = new Rectangle(25,25,40,40);
    rect1.setFill(Color.RED);
    // Blue stroked rectangle
    Rectangle rect2 = new Rectangle(135,25,40,40);
    rect2.setStroke(Color.DODGERBLUE);
    rect2.setFill(null);
    // Create a group to show all the rectangles);
    getChildren().add(new Group(rect1,rect2));
    // REMOVE ME
    setControls(
            new SimplePropertySheet.PropDesc("Rectangle 1 Fill", rect1.fillProperty()),
            new SimplePropertySheet.PropDesc("Rectangle 1 Width", rect1.widthProperty(), 10d, 50d),
            new SimplePropertySheet.PropDesc("Rectangle 1 Height", rect1.heightProperty(), 10d, 50d),
            new SimplePropertySheet.PropDesc("Rectangle 1 Arc Width", rect1.arcWidthProperty(), 0d, 50d),
            new SimplePropertySheet.PropDesc("Rectangle 1 Arc Height", rect1.arcHeightProperty(), 0d, 50d),
            new SimplePropertySheet.PropDesc("Rectangle 2 Stroke", rect2.strokeProperty()),
            new SimplePropertySheet.PropDesc("Rectangle 2 Stroke Width", rect2.strokeWidthProperty(), 1d, 5d),
            new SimplePropertySheet.PropDesc("Rectangle 2 Width", rect2.widthProperty(), 10d, 50d),
            new SimplePropertySheet.PropDesc("Rectangle 2 Height", rect2.heightProperty(), 10d, 50d),
            new SimplePropertySheet.PropDesc("Rectangle 2 Arc Width", rect2.arcWidthProperty(), 0d, 50d),
            new SimplePropertySheet.PropDesc("Rectangle 2 Arc Height", rect2.arcHeightProperty(), 0d, 50d)
    );
    // END REMOVE ME
}
 
源代码6 项目: constellation   文件: ColorAttributeInteraction.java
@Override
public List<Node> getDisplayNodes(final Object attrVal, final double width, final double height) {
    ConstellationColor colorValue = (ConstellationColor) attrVal;
    final double rectWidth = width == -1 ? height == -1 ? DEFAULT_NODE_SIZE : height : width;
    final double rectHeight = height == -1 ? rectWidth : height;
    final Rectangle rect = new Rectangle(rectWidth, rectHeight);
    rect.setFill(colorValue.getJavaFXColor());
    rect.setStroke(Color.LIGHTGREY);
    return Arrays.asList(rect);
}
 
源代码7 项目: marathonv5   文件: StopWatchSample.java
private Rectangle createBackground(Color stroke, Color fill) {
    Rectangle background = new Rectangle(14, 17, fill);
    background.setStroke(stroke);
    background.setStrokeWidth(2);
    background.setEffect(new Lighting());
    background.setCache(true);
    return background;
}
 
源代码8 项目: charts   文件: ParallelCoordinatesChart.java
private void initGraphics() {
    if (Double.compare(getPrefWidth(), 0.0) <= 0 || Double.compare(getPrefHeight(), 0.0) <= 0 || Double.compare(getWidth(), 0.0) <= 0 ||
        Double.compare(getHeight(), 0.0) <= 0) {
        if (getPrefWidth() > 0 && getPrefHeight() > 0) {
            setPrefSize(getPrefWidth(), getPrefHeight());
        } else {
            setPrefSize(PREFERRED_WIDTH, PREFERRED_HEIGHT);
        }
    }

    axisCanvas = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT);
    axisCtx    = axisCanvas.getGraphicsContext2D();

    Color selectionRectColor = getSelectionRectColor();
    rect = new Rectangle();
    rect.setMouseTransparent(true);
    rect.setVisible(false);
    rect.setStroke(Helper.getColorWithOpacity(selectionRectColor, 0.5));
    rect.setFill(Helper.getColorWithOpacity(selectionRectColor, 0.25));

    connectionCanvas = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT);
    connectionCanvas.setMouseTransparent(true);
    connectionCtx = connectionCanvas.getGraphicsContext2D();
    connectionCtx.setTextAlign(TextAlignment.LEFT);
    connectionCtx.setTextBaseline(VPos.CENTER);

    dragText = new Text("");
    dragText.setVisible(false);
    dragText.setTextOrigin(VPos.CENTER);
    dragText.setFill(Helper.getColorWithOpacity(getHeaderColor(), 0.5));


    getChildren().setAll(axisCanvas, rect, connectionCanvas, dragText);
}
 
源代码9 项目: marathonv5   文件: StopWatchSample.java
private Rectangle createBackground(Color stroke, Color fill) {
    Rectangle background = new Rectangle(14, 17, fill);
    background.setStroke(stroke);
    background.setStrokeWidth(2);
    background.setEffect(new Lighting());
    background.setCache(true);
    return background;
}
 
源代码10 项目: mars-sim   文件: IOSApp.java
public ToggleSwitch() {
    Rectangle background = new Rectangle(100, 50);
    background.setArcWidth(50);
    background.setArcHeight(50);
    background.setFill(Color.WHITE);
    background.setStroke(Color.LIGHTGRAY);

    Circle trigger = new Circle(25);
    trigger.setCenterX(25);
    trigger.setCenterY(25);
    trigger.setFill(Color.WHITE);
    trigger.setStroke(Color.LIGHTGRAY);

    DropShadow shadow = new DropShadow();
    shadow.setRadius(2);
    trigger.setEffect(shadow);

    translateAnimation.setNode(trigger);
    fillAnimation.setShape(background);

    getChildren().addAll(background, trigger);

    switchedOn.addListener((obs, oldState, newState) -> {
        boolean isOn = newState.booleanValue();
        translateAnimation.setToX(isOn ? 100 - 50 : 0);
        fillAnimation.setFromValue(isOn ? Color.WHITE : Color.LIGHTGREEN);
        fillAnimation.setToValue(isOn ? Color.LIGHTGREEN : Color.WHITE);

        animation.play();
    });

    setOnMouseClicked(event -> {
        switchedOn.set(!switchedOn.get());
    });
}
 
源代码11 项目: games_oop_javafx   文件: SeaBattle.java
private Rectangle buildRectangle(int x, int y, int size) {
    Rectangle rect = new Rectangle();
    rect.setX(x * size);
    rect.setY(y * size);
    rect.setHeight(size);
    rect.setWidth(size);
    rect.setFill(Color.WHITE);
    rect.setStroke(Color.BLACK);
    return rect;
}
 
源代码12 项目: games_oop_javafx   文件: Puzzle.java
private Rectangle buildRectangle(int x, int y, int size) {
    Rectangle rect = new Rectangle();
    rect.setX(x * size);
    rect.setY(y * size);
    rect.setHeight(size);
    rect.setWidth(size);
    rect.setFill(Color.WHITE);
    rect.setStroke(Color.BLACK);
    return rect;
}
 
源代码13 项目: FXGLGames   文件: SpaceLevel.java
public SpaceLevel() {
    Rectangle bg = new Rectangle(getAppWidth() - 20, 200, Color.color(0, 0, 0, 0.6));
    bg.setArcWidth(25);
    bg.setArcHeight(25);
    bg.setStroke(Color.color(0.1, 0.2, 0.86, 0.76));
    bg.setStrokeWidth(3);

    storyPane.setTranslateX(10);
    storyPane.setTranslateY(25);

    rootPane = new Pane(bg, storyPane);
    rootPane.setTranslateX(10);
    rootPane.setTranslateY(getAppHeight() - 200);
}
 
源代码14 项目: games_oop_javafx   文件: Chess.java
private Rectangle buildRectangle(int x, int y, int size, boolean white) {
    Rectangle rect = new Rectangle();
    rect.setX(x * size);
    rect.setY(y * size);
    rect.setHeight(size);
    rect.setWidth(size);
    if (white) {
        rect.setFill(Color.WHITE);
    } else {
        rect.setFill(Color.GRAY);
    }
    rect.setStroke(Color.BLACK);
    return rect;
}
 
LabelEntry(final List<LabelEntry> host, final Pane visualHost, final String attributeName, final ConstellationColor color, final float size) {
    attrCombo = new ComboBox<>(FXCollections.observableList(attributeNames));
    attrCombo.setPrefWidth(150);
    attrCombo.getSelectionModel().select(attributeName);
    attrCombo.getSelectionModel().selectedItemProperty().addListener((o, n, v) -> {
        update();
    });

    colorRect = new Rectangle(20, 20);
    this.color = color.getJavaFXColor();
    colorRect.setFill(this.color);
    colorRect.setStroke(Color.LIGHTGREY);
    colorRect.setOnMouseClicked(getChooseColorEventHandler());

    sizeText = new TextField(String.valueOf(size));
    sizeText.setPrefWidth(50);
    sizeText.textProperty().addListener((o, n, v) -> {
        update();
    });

    final Button upButton = new Button("", new ImageView(UserInterfaceIconProvider.CHEVRON_UP.buildImage(16)));
    upButton.setOnAction(e -> {
        moveUp();
        update();
    });
    final Button downButton = new Button("", new ImageView(UserInterfaceIconProvider.CHEVRON_DOWN.buildImage(16)));
    downButton.setOnAction(e -> {
        moveDown();
        update();
    });
    final Button removeButton = new Button("", new ImageView(UserInterfaceIconProvider.CROSS.buildImage(16)));
    removeButton.setOnAction(e -> {
        remove();
        update();
    });

    entry = new HBox(10);
    entry.getChildren().addAll(attrCombo, colorRect, sizeText, upButton, downButton, removeButton);

    this.host = host;
    this.host.add(this);
    this.visualHost = visualHost;
    this.visualHost.getChildren().add(entry);
}
 
源代码16 项目: Medusa   文件: TileTextKpiSkin.java
private void initGraphics() {
    // Set initial size
    if (Double.compare(gauge.getPrefWidth(), 0.0) <= 0 || Double.compare(gauge.getPrefHeight(), 0.0) <= 0 ||
        Double.compare(gauge.getWidth(), 0.0) <= 0 || Double.compare(gauge.getHeight(), 0.0) <= 0) {
        if (gauge.getPrefWidth() > 0 && gauge.getPrefHeight() > 0) {
            gauge.setPrefSize(gauge.getPrefWidth(), gauge.getPrefHeight());
        } else {
            gauge.setPrefSize(PREFERRED_WIDTH, PREFERRED_HEIGHT);
        }
    }

    barBackground = new Region();
    barBackground.setBackground(new Background(new BackgroundFill(gauge.getBarBackgroundColor(), new CornerRadii(0.0, 0.0, 0.025, 0.025, true), Insets.EMPTY)));

    barClip = new Rectangle();

    bar = new Rectangle();
    bar.setFill(gauge.getBarColor());
    bar.setStroke(null);
    bar.setClip(barClip);

    titleText = new Text();
    titleText.setFill(gauge.getTitleColor());
    Helper.enableNode(titleText, !gauge.getTitle().isEmpty());

    valueText = new Text();
    valueText.setFill(gauge.getValueColor());
    Helper.enableNode(valueText, gauge.isValueVisible());

    unitText = new Text(gauge.getUnit());
    unitText.setFill(gauge.getUnitColor());
    Helper.enableNode(unitText, !gauge.getUnit().isEmpty());

    percentageText = new Text();
    percentageText.setFill(gauge.getBarColor());

    percentageUnitText = new Text("%");
    percentageUnitText.setFill(gauge.getBarColor());

    maxValueRect = new Rectangle();
    maxValueRect.setFill(gauge.getThresholdColor());

    maxValueText = new Text(String.format(locale, "%." + gauge.getTickLabelDecimals() + "f", gauge.getMaxValue()));
    maxValueText.setFill(gauge.getBackgroundPaint());

    maxValueUnitText = new Text(gauge.getUnit());
    maxValueUnitText.setFill(gauge.getBackgroundPaint());

    pane = new Pane(barBackground, bar, titleText, valueText, unitText, percentageText, percentageUnitText, maxValueRect, maxValueText, maxValueUnitText);
    pane.setBorder(new Border(new BorderStroke(gauge.getBorderPaint(), BorderStrokeStyle.SOLID, new CornerRadii(PREFERRED_WIDTH * 0.025), new BorderWidths(gauge.getBorderWidth()))));
    pane.setBackground(new Background(new BackgroundFill(gauge.getBackgroundPaint(), new CornerRadii(PREFERRED_WIDTH * 0.025), Insets.EMPTY)));

    getChildren().setAll(pane);
}
 
源代码17 项目: marathonv5   文件: ScaleSample.java
public ScaleSample() {
    super(180,180);
    // simple rectangle
    Rectangle rect1 = new Rectangle(0, 25, 25, 25);
    rect1.setArcHeight(15);
    rect1.setArcWidth(15);
    rect1.setFill(Color.WHITE);
    rect1.setStroke(Color.DODGERBLUE);
    rect1.setStrokeWidth(3);
    
    Polygon arrow = createArrow();
    arrow.setLayoutX(46);
    arrow.setLayoutY(22);
    arrow.setRotate(90);
    
    // simple rectangle with scale 2 in X axis and 0.5 in Y
    Rectangle rect2 = new Rectangle(95, 25, 25, 25);
    rect2.setArcHeight(15);
    rect2.setArcWidth(15);
    rect2.setFill(Color.WHITE);
    rect2.setStroke(Color.DODGERBLUE);
    rect2.setStrokeWidth(3);
    rect2.setScaleX(2);
    rect2.setScaleY(0.5);
    // rectangle with adjustable scale
    Rectangle rect3 = new Rectangle(40, 130, 25, 25);
    rect3.setArcHeight(15);
    rect3.setArcWidth(15);
    rect3.setFill(Color.WHITE);
    rect3.setStroke(Color.DODGERBLUE);
    rect3.setStrokeWidth(3);
    rect3.setScaleX(6);
    rect3.setScaleY(0.5);
    rect3.setTranslateX(rect3.getTranslateX()+30);
    //getChildren().addAll(rect1, rect2, rect3);
    getChildren().addAll(rect1, arrow, rect2, rect3);
    
    // REMOVE ME
    setControls(
            new SimplePropertySheet.PropDesc("Scale X", rect3.scaleXProperty(), 0.1d, 16d),
            new SimplePropertySheet.PropDesc("Scale Y", rect3.scaleYProperty(), 0.1d, 4d)
    );
    // END REMOVE ME
}
 
源代码18 项目: tilesfx   文件: TimerControlTileSkin.java
@Override protected void initGraphics() {
    super.initGraphics();

    currentValueListener = o -> {
        if (tile.isRunning()) { return; } // Update time only if clock is not already running
        updateTime(ZonedDateTime.ofInstant(Instant.ofEpochSecond(tile.getCurrentTime()), ZoneId.of(ZoneId.systemDefault().getId())));
    };
    timeListener         = o -> updateTime(tile.getTime());

    dateFormatter = DateTimeFormatter.ofPattern("EE d", tile.getLocale());

    sectionMap   = new HashMap<>(tile.getTimeSections().size());
    for (TimeSection section : tile.getTimeSections()) { sectionMap.put(section, new Arc()); }

    minuteRotate = new Rotate();
    hourRotate   = new Rotate();
    secondRotate = new Rotate();

    sectionsPane = new Pane();
    sectionsPane.getChildren().addAll(sectionMap.values());
    Helper.enableNode(sectionsPane, tile.getSectionsVisible());

    minuteTickMarks = new Path();
    minuteTickMarks.setFillRule(FillRule.EVEN_ODD);
    minuteTickMarks.setFill(null);
    minuteTickMarks.setStroke(tile.getMinuteColor());
    minuteTickMarks.setStrokeLineCap(StrokeLineCap.ROUND);

    hourTickMarks = new Path();
    hourTickMarks.setFillRule(FillRule.EVEN_ODD);
    hourTickMarks.setFill(null);
    hourTickMarks.setStroke(tile.getHourColor());
    hourTickMarks.setStrokeLineCap(StrokeLineCap.ROUND);

    hour = new Rectangle(3, 60);
    hour.setArcHeight(3);
    hour.setArcWidth(3);
    hour.setStroke(tile.getHourColor());
    hour.getTransforms().setAll(hourRotate);

    minute = new Rectangle(3, 96);
    minute.setArcHeight(3);
    minute.setArcWidth(3);
    minute.setStroke(tile.getMinuteColor());
    minute.getTransforms().setAll(minuteRotate);

    second = new Rectangle(1, 96);
    second.setArcHeight(1);
    second.setArcWidth(1);
    second.setStroke(tile.getSecondColor());
    second.getTransforms().setAll(secondRotate);
    second.setVisible(tile.isSecondsVisible());
    second.setManaged(tile.isSecondsVisible());

    knob = new Circle(PREFERRED_WIDTH * 0.5, PREFERRED_HEIGHT * 0.5, 4.5);
    knob.setStroke(Color.web("#282a3280"));

    dropShadow = new DropShadow();
    dropShadow.setColor(Color.rgb(0, 0, 0, 0.25));
    dropShadow.setBlurType(BlurType.TWO_PASS_BOX);
    dropShadow.setRadius(0.015 * PREFERRED_WIDTH);
    dropShadow.setOffsetY(0.015 * PREFERRED_WIDTH);

    shadowGroupHour   = new Group(hour);
    shadowGroupMinute = new Group(minute);
    shadowGroupSecond = new Group(second, knob);

    shadowGroupHour.setEffect(tile.isShadowsEnabled() ? dropShadow : null);
    shadowGroupMinute.setEffect(tile.isShadowsEnabled() ? dropShadow : null);
    shadowGroupSecond.setEffect(tile.isShadowsEnabled() ? dropShadow : null);

    titleText = new Text("");
    titleText.setTextOrigin(VPos.TOP);
    Helper.enableNode(titleText, !tile.getTitle().isEmpty());

    amPmText = new Text(tile.getTime().get(ChronoField.AMPM_OF_DAY) == 0 ? "AM" : "PM");

    dateText = new Text("");
    Helper.enableNode(dateText, tile.isDateVisible());

    text = new Text("");
    Helper.enableNode(text, tile.isTextVisible());

    getPane().getChildren().addAll(sectionsPane, hourTickMarks, minuteTickMarks, titleText, amPmText, dateText, text, shadowGroupHour, shadowGroupMinute, shadowGroupSecond);
}
 
源代码19 项目: phoebus   文件: SymbolRepresentation.java
DefaultSymbolNode() {

            setManaged(true);

            int w = 100;
            int h = 100;

            r = new Rectangle(0, 0, w, h);

            r.setFill(null);
            r.setArcHeight(0);
            r.setArcWidth(0);
            r.setStroke(Color.BLACK);
            r.setStrokeType(StrokeType.INSIDE);

            l1 = new Line(0.5, 0.5, w - 0.5, h - 0.5);

            l1.setStroke(Color.BLACK);
            l1.setStrokeLineCap(StrokeLineCap.BUTT);

            l2 = new Line(0.5, h - 0.5, w - 0.5, 0.5);

            l2.setStroke(Color.BLACK);
            l2.setStrokeLineCap(StrokeLineCap.BUTT);

            getChildren().add(r);
            getChildren().add(l1);
            getChildren().add(l2);

        }
 
源代码20 项目: FXTutorials   文件: FarCry4Loading.java
public LoadingArc() {
    Arc arc = new Arc();

    arc.setCenterX(25);
    arc.setCenterY(25);
    arc.setRadiusX(25.0f);
    arc.setRadiusY(25.0f);
    arc.setLength(30.0f);
    arc.setStrokeWidth(5);

    Stop[] stops = new Stop[] { new Stop(0, Color.WHITE), new Stop(1, Color.BLUE)};
    LinearGradient lg1 = new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, stops);

    arc.setStroke(lg1);

    Rectangle rect = new Rectangle(50, 50);
    rect.setFill(null);
    rect.setStroke(Color.RED);

    getChildren().addAll(rect, arc);


    double time = 0.75;

    Rotate r = new Rotate(0, 25, 25);
    arc.getTransforms().add(r);
    //arc.getTransforms().add(new Scale(-1, 1, 25, 25));

    Timeline timeline = new Timeline();
    KeyFrame kf2 = new KeyFrame(Duration.seconds(time), new KeyValue(r.angleProperty(), 270));


    timeline.getKeyFrames().addAll(kf2);

    Timeline timeline3 = new Timeline(new KeyFrame(Duration.seconds(time), new KeyValue(r.angleProperty(), 360)));


    SequentialTransition st = new SequentialTransition(timeline, timeline3);
    st.setCycleCount(Timeline.INDEFINITE);
    st.setInterpolator(Interpolator.EASE_BOTH);
    st.play();

    //////////

    Timeline timeline2 = new Timeline();
    timeline2.setAutoReverse(true);
    timeline2.setCycleCount(Timeline.INDEFINITE);


    KeyFrame kf = new KeyFrame(Duration.seconds(time), new KeyValue(arc.lengthProperty(), 270, Interpolator.EASE_BOTH));

    timeline2.getKeyFrames().add(kf);
    timeline2.play();
}