import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.geometry.NodeOrientation; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.chart.PieChart; import javafx.scene.control.CheckBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class PieChartApp extends Application { private PieChart chart; public static ObservableList generateData() { return FXCollections.observableArrayList( new PieChart.Data("Sun", 20), new PieChart.Data("IBM", 12), new PieChart.Data("HP", 25), new PieChart.Data("Dell", 22), new PieChart.Data("Apple", 21)); } public Parent createContent() { VBox root = new VBox(); CheckBox rtlCheckBox = new CheckBox("Right to Left"); rtlCheckBox.setSelected(true); rtlCheckBox.selectedProperty().addListener((o, oldValue, newValue) -> chart.setNodeOrientation(newValue ? NodeOrientation.RIGHT_TO_LEFT : NodeOrientation.INHERIT)); chart = new PieChart(generateData()); chart.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT); root.getChildren().addAll(rtlCheckBox, chart); return root; } @Override public void start(Stage primaryStage) throws Exception { primaryStage.setScene(new Scene(createContent())); primaryStage.setTitle("PieChart Test (" + System.getProperty("javafx.runtime.version") + ")"); primaryStage.show(); } /** * Java main for when running without JavaFX launcher * * @param args command line arguments */ public static void main(String[] args) { launch(args); } }