@Override
public void start(final Stage stage) throws Exception {
StackPane pane = new StackPane();
JFXSpinner root = new JFXSpinner();
pane.getChildren().add(root);
final Scene scene = new Scene(pane, 300, 300);
scene.getStylesheets().add(MainDemo.class.getResource("/css/jfoenix-components.css").toExternalForm());
stage.setScene(scene);
stage.setTitle("JFX Spinner Demo");
stage.show();
}
public JFXSpinnerSkin(JFXSpinner control) {
super(control, new BehaviorBase<JFXSpinner>(control, Collections.emptyList()));
this.control = control;
blueColor = Color.valueOf("#4285f4");
redColor = Color.valueOf("#db4437");
yellowColor = Color.valueOf("#f4b400");
greenColor = Color.valueOf("#0F9D58");
arc = new Arc();
arc.setManaged(false);
arc.setStartAngle(0);
arc.setLength(180);
arc.getStyleClass().setAll("arc");
arc.setFill(Color.TRANSPARENT);
arc.setStrokeWidth(3);
track = new Arc();
track.setManaged(false);
track.setStartAngle(0);
track.setLength(360);
track.setStrokeWidth(3);
track.getStyleClass().setAll("track");
track.setFill(Color.TRANSPARENT);
fillRect = new Rectangle();
fillRect.setFill(Color.TRANSPARENT);
text = new Text();
text.getStyleClass().setAll("text", "percentage");
final Group group = new Group(fillRect, track, arc, text);
group.setManaged(false);
arcPane = new StackPane(group);
arcPane.setPrefSize(50, 50);
getChildren().setAll(arcPane);
// register listeners
registerChangeListener(control.indeterminateProperty(), "INDETERMINATE");
registerChangeListener(control.progressProperty(), "PROGRESS");
registerChangeListener(control.visibleProperty(), "VISIBLE");
registerChangeListener(control.parentProperty(), "PARENT");
registerChangeListener(control.sceneProperty(), "SCENE");
}