Mercurial > hg > Members > sugi > javafx
view src/example/SchedulerViewerTest.java @ 25:0a99effcfd3b
add example for Scheduler
author | sugi |
---|---|
date | Thu, 31 Oct 2013 01:17:10 +0900 |
parents | |
children | 46f7a75d9a82 |
line wrap: on
line source
package example; /** * Copyright (c) 2008, 2012 Oracle and/or its affiliates. * All rights reserved. Use is subject to license terms. */ import javafx.animation.Timeline; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.stage.Stage; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.chart.*; import javafx.animation.Animation; import javafx.animation.KeyFrame; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.chart.NumberAxis; import javafx.util.Duration; /** * A sample that displays data in a stacked bar chart. * * @see javafx.scene.chart.StackedBarChart * @see javafx.scene.chart.CategoryAxisBuilder * @see javafx.scene.chart.NumberAxis * @related charts/bar/BarChart * */ public class SchedulerViewerTest extends Application { private Timeline animation; private CategoryAxis xAxis; private NumberAxis yAxis; private double hours = 0; private double minutes = 0; private double timeInHours = 0; private void init(Stage primaryStage) { Group root = new Group(); primaryStage.setScene(new Scene(root)); root.getChildren().add(createChart()); animation = new Timeline(); animation.getKeyFrames().add(new KeyFrame(Duration.millis(1000/60), new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent actionEvent) { // 6 minutes data per frame for(int count=0; count < 6; count++) { // nextTime(); plotTime(); } } })); animation.setCycleCount(Animation.INDEFINITE); } @SuppressWarnings({ "rawtypes", "unchecked" }) protected StackedBarChart createChart(){ String[] years = {"2007", "2008", "2009"}; xAxis = new CategoryAxis(FXCollections.<String>observableArrayList(years)); yAxis = new NumberAxis(0,75,5); // (start, end, interval) ObservableList<StackedBarChart.Series> barChartData = FXCollections.observableArrayList( new StackedBarChart.Series("Region 1", FXCollections.observableArrayList( new StackedBarChart.Data(years[0], 10d), new StackedBarChart.Data(years[1], 12d), new StackedBarChart.Data(years[2], 15d) )), new StackedBarChart.Series("Region 2", FXCollections.observableArrayList( new StackedBarChart.Data(years[0], 20), new StackedBarChart.Data(years[1], 16), new StackedBarChart.Data(years[2], 25) )), new StackedBarChart.Series<String ,Number>("Region 3", FXCollections.observableArrayList( new StackedBarChart.Data<String, Number>(years[0], 15), new StackedBarChart.Data<String, Number>(years[1], 19), new StackedBarChart.Data<String, Number>(years[2], 27) )) ); StackedBarChart cc = new StackedBarChart(xAxis, yAxis); cc.setData(barChartData); cc.setCategoryGap(25.0d); //hourDataSeries = new XYChart.Series<Number,Number>(); //hourDataSeries.setName("Time"); //hourDataSeries.getData().add(new XYChart.Data<Number,Number>(timeInHours,prevY)); for (double m=0; m<(60); m++) { nextTime(); plotTime(); } //cc.getData().add(hourDataSeries); return cc; } private void nextTime() { if (minutes == 59) { hours ++; minutes = 0; } else { minutes ++; } timeInHours = hours + ((1d/60d)*minutes); System.out.println(this.timeInHours); } public void plotTime(){ yAxis.setLowerBound(yAxis.getLowerBound()+1); yAxis.setUpperBound(yAxis.getUpperBound()+1); } public void play() { animation.play(); } @Override public void start(Stage primaryStage) throws Exception { init(primaryStage); primaryStage.show(); play(); } public static void main(String[] args) { launch(args); } }