1 /* 2 * Copyright (c) 2008, 2014, Oracle and/or its affiliates. 3 * All rights reserved. Use is subject to license terms. 4 * 5 * This file is available and licensed under the following license: 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * - Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * - Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in 15 * the documentation and/or other materials provided with the distribution. 16 * - Neither the name of Oracle Corporation nor the names of its 17 * contributors may be used to endorse or promote products derived 18 * from this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 package ensemble.samples.charts.area.stacked; 33 34 35 import javafx.application.Application; 36 import javafx.collections.FXCollections; 37 import javafx.collections.ObservableList; 38 import javafx.scene.Parent; 39 import javafx.scene.Scene; 40 import javafx.scene.chart.StackedAreaChart; 41 import javafx.scene.chart.NumberAxis; 42 import javafx.stage.Stage; 43 44 45 /** 46 * A sample that displays data in a stacked area chart. 47 * 48 * @sampleName Stacked Area Chart 49 * @preview preview.png 50 * @see javafx.scene.chart.StackedAreaChart 51 * @see javafx.scene.chart.NumberAxis 52 * @related /Charts/Area/Area Chart 53 * @docUrl http://docs.oracle.com/javafx/2/charts/jfxpub-charts.htm Using JavaFX Charts Tutorial 54 * @playground chart.data 55 * 56 * @playground - (name="xAxis") 57 * @playground xAxis.autoRanging 58 * @playground xAxis.forceZeroInRange 59 * @playground xAxis.lowerBound (min=-10, max=10,step=1) 60 * @playground xAxis.upperBound (min=-10, max=10,step=1) 61 * @playground xAxis.tickUnit (max=10) 62 * @playground xAxis.minorTickCount (max=16) 63 * @playground xAxis.minorTickLength (max=15) 64 * @playground xAxis.minorTickVisible 65 * 66 * @playground xAxis.animated 67 * @playground xAxis.label 68 * @playground xAxis.side 69 * @playground xAxis.tickLabelFill 70 * @playground xAxis.tickLabelGap 71 * @playground xAxis.tickLabelRotation (min=-180,max=180,step=1) 72 * @playground xAxis.tickLabelsVisible 73 * @playground xAxis.tickLength 74 * @playground xAxis.tickMarkVisible 75 * 76 * @playground - (name="yAxis") 77 * @playground yAxis.autoRanging 78 * @playground yAxis.forceZeroInRange 79 * @playground yAxis.lowerBound (min=-10, max=20,step=1) 80 * @playground yAxis.upperBound (min=-10, max=40,step=1) 81 * @playground yAxis.tickUnit (max=10) 82 * @playground yAxis.minorTickCount (max=16) 83 * @playground yAxis.minorTickLength (max=15) 84 * @playground yAxis.minorTickVisible 85 * 86 * @playground yAxis.animated 87 * @playground yAxis.label 88 * @playground yAxis.side 89 * @playground yAxis.tickLabelFill 90 * @playground yAxis.tickLabelGap 91 * @playground yAxis.tickLabelRotation (min=-180,max=180,step=1) 92 * @playground yAxis.tickLabelsVisible 93 * @playground yAxis.tickLength 94 * @playground yAxis.tickMarkVisible 95 * 96 * @playground - (name="chart") 97 * @playground chart.horizontalGridLinesVisible 98 * @playground chart.horizontalZeroLineVisible 99 * @playground chart.verticalGridLinesVisible 100 * @playground chart.verticalZeroLineVisible 101 * 102 * @playground chart.animated 103 * @playground chart.legendSide 104 * @playground chart.legendVisible 105 * @playground chart.title 106 * @playground chart.titleSide 107 * @highlight 108 */ 109 public class StackedAreaChartApp extends Application { 110 111 private StackedAreaChart chart; 112 private NumberAxis xAxis; 113 private NumberAxis yAxis; 114 115 public Parent createContent() { 116 xAxis = new NumberAxis("X Values", 1.0d, 9.0d, 2.0d); 117 yAxis = new NumberAxis("Y Values", 0.0d, 30.0d, 2.0d); 118 119 ObservableList<StackedAreaChart.Series> areaChartData = FXCollections.observableArrayList( 120 new StackedAreaChart.Series("Series 1",FXCollections.observableArrayList( 121 new StackedAreaChart.Data(0,4), 122 new StackedAreaChart.Data(2,5), 123 new StackedAreaChart.Data(4,4), 124 new StackedAreaChart.Data(6,2), 125 new StackedAreaChart.Data(8,6), 126 new StackedAreaChart.Data(10,8) 127 )), 128 new StackedAreaChart.Series("Series 2", FXCollections.observableArrayList( 129 new StackedAreaChart.Data(0,8), 130 new StackedAreaChart.Data(2,2), 131 new StackedAreaChart.Data(4,9), 132 new StackedAreaChart.Data(6,7), 133 new StackedAreaChart.Data(8,5), 134 new StackedAreaChart.Data(10,7) 135 )), 136 new StackedAreaChart.Series("Series 3", FXCollections.observableArrayList( 137 new StackedAreaChart.Data(0,2), 138 new StackedAreaChart.Data(2,5), 139 new StackedAreaChart.Data(4,8), 140 new StackedAreaChart.Data(6,6), 141 new StackedAreaChart.Data(8,9), 142 new StackedAreaChart.Data(10,7) 143 )) 144 ); 145 chart = new StackedAreaChart(xAxis, yAxis, areaChartData); 146 return chart; 147 } 148 149 @Override public void start(Stage primaryStage) throws Exception { 150 primaryStage.setScene(new Scene(createContent())); 151 primaryStage.show(); 152 } 153 154 /** 155 * Java main for when running without JavaFX launcher 156 * @param args command line arguments 157 */ 158 public static void main(String[] args) { 159 launch(args); 160 } 161 }