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 https://docs.oracle.com/javafx/2/charts/jfxpub-charts.htm Using JavaFX Charts Tutorial 54 * @playground chart.data 55 * @playground - (name="xAxis") 56 * @playground xAxis.autoRanging 57 * @playground xAxis.forceZeroInRange 58 * @playground xAxis.lowerBound (min=-10, max=10,step=1) 59 * @playground xAxis.upperBound (min=-10, max=10,step=1) 60 * @playground xAxis.tickUnit (max=10) 61 * @playground xAxis.minorTickCount (max=16) 62 * @playground xAxis.minorTickLength (max=15) 63 * @playground xAxis.minorTickVisible 64 * @playground xAxis.animated 65 * @playground xAxis.label 66 * @playground xAxis.side 67 * @playground xAxis.tickLabelFill 68 * @playground xAxis.tickLabelGap 69 * @playground xAxis.tickLabelRotation (min=-180,max=180,step=1) 70 * @playground xAxis.tickLabelsVisible 71 * @playground xAxis.tickLength 72 * @playground xAxis.tickMarkVisible 73 * @playground - (name="yAxis") 74 * @playground yAxis.autoRanging 75 * @playground yAxis.forceZeroInRange 76 * @playground yAxis.lowerBound (min=-10, max=20,step=1) 77 * @playground yAxis.upperBound (min=-10, max=40,step=1) 78 * @playground yAxis.tickUnit (max=10) 79 * @playground yAxis.minorTickCount (max=16) 80 * @playground yAxis.minorTickLength (max=15) 81 * @playground yAxis.minorTickVisible 82 * @playground yAxis.animated 83 * @playground yAxis.label 84 * @playground yAxis.side 85 * @playground yAxis.tickLabelFill 86 * @playground yAxis.tickLabelGap 87 * @playground yAxis.tickLabelRotation (min=-180,max=180,step=1) 88 * @playground yAxis.tickLabelsVisible 89 * @playground yAxis.tickLength 90 * @playground yAxis.tickMarkVisible 91 * @playground - (name="chart") 92 * @playground chart.horizontalGridLinesVisible 93 * @playground chart.horizontalZeroLineVisible 94 * @playground chart.verticalGridLinesVisible 95 * @playground chart.verticalZeroLineVisible 96 * @playground chart.animated 97 * @playground chart.legendSide 98 * @playground chart.legendVisible 99 * @playground chart.title 100 * @playground chart.titleSide 101 * @highlight 102 */ 103 public class StackedAreaChartApp extends Application { 104 105 private StackedAreaChart chart; 106 private NumberAxis xAxis; 107 private NumberAxis yAxis; 108 109 public Parent createContent() { 110 xAxis = new NumberAxis("X Values", 1.0d, 9.0d, 2.0d); 111 yAxis = new NumberAxis("Y Values", 0.0d, 30.0d, 2.0d); 112 113 ObservableList<StackedAreaChart.Series> areaChartData = FXCollections.observableArrayList( 114 new StackedAreaChart.Series("Series 1",FXCollections.observableArrayList( 115 new StackedAreaChart.Data(0,4), 116 new StackedAreaChart.Data(2,5), 117 new StackedAreaChart.Data(4,4), 118 new StackedAreaChart.Data(6,2), 119 new StackedAreaChart.Data(8,6), 120 new StackedAreaChart.Data(10,8) 121 )), 122 new StackedAreaChart.Series("Series 2", FXCollections.observableArrayList( 123 new StackedAreaChart.Data(0,8), 124 new StackedAreaChart.Data(2,2), 125 new StackedAreaChart.Data(4,9), 126 new StackedAreaChart.Data(6,7), 127 new StackedAreaChart.Data(8,5), 128 new StackedAreaChart.Data(10,7) 129 )), 130 new StackedAreaChart.Series("Series 3", FXCollections.observableArrayList( 131 new StackedAreaChart.Data(0,2), 132 new StackedAreaChart.Data(2,5), 133 new StackedAreaChart.Data(4,8), 134 new StackedAreaChart.Data(6,6), 135 new StackedAreaChart.Data(8,9), 136 new StackedAreaChart.Data(10,7) 137 )) 138 ); 139 chart = new StackedAreaChart(xAxis, yAxis, areaChartData); 140 return chart; 141 } 142 143 @Override public void start(Stage primaryStage) throws Exception { 144 primaryStage.setScene(new Scene(createContent())); 145 primaryStage.show(); 146 } 147 148 /** 149 * Java main for when running without JavaFX launcher 150 * @param args command line arguments 151 */ 152 public static void main(String[] args) { 153 launch(args); 154 } 155 }