private void createMinus() { Path minus = PathBuilder.create() .elements(new MoveTo(0, 0), new LineTo(0, 5), new LineTo(15, 5), new LineTo(15, 0), new LineTo(0, 0)) .stroke(Color.web("#000000")) .fill(Color.web("#FFFFFF")) .strokeWidth(1) .cursor(Cursor.HAND) .build(); Circle c = CircleBuilder.create().radius(13).style("-fx-fill:-fx-base;").build() ; StackPane sp = StackPaneBuilder.create().styleClass("close-btn") .maxHeight(26).maxWidth(26) .prefHeight(26).prefWidth(26) .children(c,minus).build(); root.getChildren().add(sp); }
private void init(Stage primaryStage) { Group root = new Group(); primaryStage.setResizable(false); primaryStage.setScene(new Scene(root, 400,260)); Rectangle rect = new Rectangle (0, 0, 40, 40); rect.setArcHeight(10); rect.setArcWidth(10); rect.setFill(Color.ORANGE); root.getChildren().add(rect); Path path = PathBuilder.create() .elements( new MoveTo(20,20), new CubicCurveTo(380, 0, 380, 120, 200, 120), new CubicCurveTo(0, 120, 0, 240, 380, 240) ) .build(); path.setStroke(Color.DODGERBLUE); path.getStrokeDashArray().setAll(5d,5d); root.getChildren().add(path); pathTransition = PathTransitionBuilder.create() .duration(Duration.seconds(4)) .path(path) .node(rect) .orientation(OrientationType.ORTHOGONAL_TO_TANGENT) .cycleCount(Timeline.INDEFINITE) .autoReverse(true) .build(); }
public Path getArrow(){ Path arrow = PathBuilder.create() .elements(new MoveTo(0, 0), new LineTo(6, 6), new LineTo(12, 0), new MoveTo(0, 6), new LineTo(6, 12), new LineTo(12, 6)) .stroke(Color.web("#5D5D5D")) .strokeWidth(2) .build(); arrow.rotateProperty().bind(arrowRotate); return arrow; }
private void createPlus() { Path plus = PathBuilder.create() .elements(new MoveTo(5, 0), new LineTo(5, 5), new LineTo(0, 5), new LineTo(0, 10), new LineTo(5, 10), new LineTo(5, 15), new LineTo(10, 15), new LineTo(10, 10), new LineTo(15, 10), new LineTo(15, 5), new LineTo(10, 5), new LineTo(10, 0), new LineTo(5, 0)) .stroke(Color.web("#000000")) .fill(Color.web("#FFFFFF")) .strokeWidth(1) .rotate(45) .cursor(Cursor.HAND) .build(); Circle c = CircleBuilder.create().radius(13).style("-fx-fill:-fx-base;").build() ; StackPane sp = StackPaneBuilder.create() .maxHeight(26).maxWidth(26) .prefHeight(26).prefWidth(26) .children(c,plus).build(); root.getChildren().add(sp); }
private Path createDartboardField(double degreeStart, double degreeEnd, double innerRadius, double outerRadius, String style) { double angleAlpha = degreeStart * (Math.PI / 180); double angleAlphaNext = degreeEnd * (Math.PI / 180); //Point 1 double pointX1 = CENTER_X + innerRadius * Math.sin(angleAlpha); double pointY1 = CENTER_Y - innerRadius * Math.cos(angleAlpha); //Point 2 double pointX2 = CENTER_X + outerRadius * Math.sin(angleAlpha); double pointY2 = CENTER_Y - outerRadius * Math.cos(angleAlpha); //Point 3 double pointX3 = CENTER_X + outerRadius * Math.sin(angleAlphaNext); double pointY3 = CENTER_Y - outerRadius * Math.cos(angleAlphaNext); //Point 4 double pointX4 = CENTER_X + innerRadius * Math.sin(angleAlphaNext); double pointY4 = CENTER_Y - innerRadius * Math.cos(angleAlphaNext); Path path = PathBuilder.create() .styleClass(style) .elements( new MoveTo(pointX1, pointY1), new LineTo(pointX2, pointY2), ArcToBuilder .create() .radiusX(outerRadius) .radiusY(outerRadius) .x(pointX3) .y(pointY3) .sweepFlag(true) .build(), new LineTo(pointX4, pointY4), ArcToBuilder .create() .radiusX(innerRadius) .radiusY(innerRadius) .x(pointX1) .y(pointY1) .sweepFlag(false) .build()) .build(); return path; }
private void addColorItem(final Color color, final double startAngle, final double length) { final RadialMenuItem colorItem = RadialMenuItemBuilder.create() .startAngle(startAngle).length(length).backgroundFill(color) .backgroundMouseOnFill(color).strokeVisible(false).offset(minOffset) .innerRadius(60).radius(140).build(); getChildren().add(colorItem); final Path extGraphic = PathBuilder .create() .elements(MoveToBuilder.create().x(-2.5).y(0).build(), LineToBuilder.create().x(-2.5).y(5).build(), LineToBuilder.create().x(2.5).y(0).build(), LineToBuilder.create().x(-2.5).y(-5).build(), LineToBuilder.create().x(-2.5).y(0).build()) .fill(Color.WHITE) .stroke(null) .rotate(-colorItem.startAngleProperty().get() - colorItem.lengthProperty().get() / 2.0) .build(); final RadialMenuItem colorItemExt = RadialMenuItemBuilder.create() .startAngle(startAngle).length(length).backgroundFill(color) .backgroundMouseOnFill(color).strokeVisible(false) .innerRadius(142).radius(180).graphic(extGraphic).offset(minOffset) .build(); getChildren().add(colorItemExt); colorItemExt.setOnMouseClicked(itemExtMouseHandler); final Paint selectColor = Color.GRAY; final double colorOffset = 6; final RadialMenuItem colorItemSel = RadialMenuItemBuilder.create() .startAngle(startAngle + colorOffset).offset(minOffset) .length(length - colorOffset * 2).backgroundFill(selectColor) .strokeVisible(false).innerRadius(132).radius(134).build(); colorItemSel.setOpacity(0.0); getChildren().add(colorItemSel); final EventHandler<MouseEvent> mouseHandler = new ItemOnEventHandler( colorItemSel, colorItem, colorItemExt); colorItem.setOnMouseEntered(mouseHandler); colorItem.setOnMouseExited(mouseHandler); colorItem.setOnMouseMoved(mouseHandler); }