package javafxcompatibilitybuild68; import javafx.application.Application; import javafx.collections.ObservableList; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.chart.BarChart; import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.NumberAxis; import javafx.stage.Stage; public class JavaFXCompatibilityBuild68 extends Application { public static void main(String[] args) { launch(args); } private ObservableList convertToBarChartData(ObservableList x, ObservableList y) { ObservableList r = javafx.collections.FXCollections.observableArrayList(); if (x == null || y == null) { return r; } int n = x.size(); if (n < y.size()) { n = y.size(); } for (int i = 0; i <= n - 1; i++) { javafx.scene.chart.BarChart.Data data = new javafx.scene.chart.BarChart.Data(x.get(i), y.get(i)); r.add(data); } return r; } private ObservableList cat1; { cat1 = javafx.collections.FXCollections.observableArrayList(); cat1.addAll("Spring", "Summer", "Fall", "Winter"); } private ObservableList val1; { val1 = javafx.collections.FXCollections.observableArrayList(); val1.addAll(150d, 200d, 250d, 300d); } private ObservableList cat2; { cat2 = javafx.collections.FXCollections.observableArrayList(); cat2.addAll("Software", "Hardware", "Service"); } private ObservableList val2; { val2 = javafx.collections.FXCollections.observableArrayList(); val2.addAll(100d, 50d, 200d); } private ObservableList cat3; { cat3 = javafx.collections.FXCollections.observableArrayList(); cat3.addAll("Sun", "Apple", "HP", "Dell", "IBM"); } private ObservableList val3; { val3 = javafx.collections.FXCollections.observableArrayList(); val3.addAll(20d, 30d, 25d, 22d, 3d); } private ObservableList getData() { javafx.scene.chart.BarChart.Series bs1 = new javafx.scene.chart.BarChart.Series(); bs1.getData().addAll(convertToBarChartData(cat1, val1)); javafx.scene.chart.BarChart.Series bs2 = new javafx.scene.chart.BarChart.Series(); bs2.getData().addAll(convertToBarChartData(cat2, val2)); javafx.scene.chart.BarChart.Series bs3 = new javafx.scene.chart.BarChart.Series(); bs3.getData().addAll(convertToBarChartData(cat3, val3)); ObservableList barChartData = javafx.collections.FXCollections.observableArrayList(); barChartData.addAll(bs1); return barChartData; } @Override public void start(Stage stage) throws Exception { CategoryAxis seasonAxis = new CategoryAxis(); NumberAxis numberaxis = new NumberAxis(); seasonAxis.setCategories(cat1); seasonAxis.setLabel("Season"); seasonAxis.setStyle("-fx-tick-label-font: 12px \"Serif\";"); BarChart chart = new BarChart(seasonAxis, numberaxis); chart.setStyle("-fx-tick-label-font: 12px \"Serif\";"); numberaxis.setLowerBound(0.0F); numberaxis.setUpperBound(400.0F); numberaxis.setTickUnit(50.0F); numberaxis.setLabel("Y"); numberaxis.setVisible(true); numberaxis.setStyle("-fx-tick-label-font: 12px \"Serif\";"); chart.setData(getData()); chart.setPrefHeight(200); chart.setPrefWidth(200); chart.setTitle("BarChart"); Scene scene = new Scene(new Group()); ((Group) scene.getRoot()).getChildren().clear(); ((Group) scene.getRoot()).getChildren().addAll(chart); stage.setScene(scene); chart.requestFocus(); stage.show(); } }