/* * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. */ import java.util.Arrays; import javafx.application.Application; import javafx.collections.FXCollections; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.chart.BarChart; import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; import javafx.scene.control.Button; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; /** * * @author akouznet */ public class Bug extends Application { /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } private BarChart bc; private VBox root; protected BarChart createChart() { final String[] years = {"2007", "2008", "2009"}; final CategoryAxis xAxis = new CategoryAxis(); final NumberAxis yAxis = new NumberAxis(); yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis,"$",null)); bc = new BarChart(xAxis,yAxis); // setup chart bc.setTitle("Advanced Bar Chart"); xAxis.setLabel("Year"); xAxis.setCategories(FXCollections.observableArrayList(Arrays.asList(years))); yAxis.setLabel("Price"); // add starting data XYChart.Series series1 = new XYChart.Series(); series1.setName("Data Series 1"); XYChart.Series series2 = new XYChart.Series(); series2.setName("Data Series 2"); XYChart.Series series3 = new XYChart.Series(); series3.setName("Data Series 3"); // create sample data series1.getData().add(new XYChart.Data(years[0], 567)); // series1.getData().add(new XYChart.Data(years[1], 1292)); // series1.getData().add(new XYChart.Data(years[2], 2180)); // series2.getData().add(new XYChart.Data(years[0], 956)); // series2.getData().add(new XYChart.Data(years[1], 1665)); // series2.getData().add(new XYChart.Data(years[2], 2450)); // series3.getData().add(new XYChart.Data(years[0], 800)); // series3.getData().add(new XYChart.Data(years[1], 1000)); // series3.getData().add(new XYChart.Data(years[2], 2800)); bc.getData().add(series1); // bc.getData().add(series2); // bc.getData().add(series3); return bc; } @Override public void start(Stage primaryStage) { Button animate = new Button("Animate"); animate.setOnAction(new EventHandler() { @Override public void handle(ActionEvent t) { bc.getData().get(0).getData().remove(0); } }); Button revert = new Button("Revert"); revert.setOnAction(new EventHandler() { @Override public void handle(ActionEvent t) { root.getChildren().set(1, createChart()); } }); HBox buttonsHBox = new HBox(); buttonsHBox.getChildren().setAll(animate, revert); root = new VBox(); root.getChildren().setAll(buttonsHBox, createChart()); Scene scene = new Scene(root); primaryStage.setScene(scene); primaryStage.show(); // ScenicView.show(root); } }