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 33 package ensemble.samples.charts.area.chart; 34 35 36 import javafx.application.Application; 37 import javafx.collections.FXCollections; 38 import javafx.collections.ObservableList; 39 import javafx.scene.Parent; 40 import javafx.scene.Scene; 41 import javafx.scene.chart.AreaChart; 42 import javafx.scene.chart.NumberAxis; 43 import javafx.stage.Stage; 44 45 46 /** 47 * A chart that fills in the area between a line of data points and the axes. 48 * Good for comparing accumulated totals over time. 49 * 50 * @sampleName Area Chart 51 * @preview preview.png 52 * @see javafx.scene.chart.AreaChart 53 * @see javafx.scene.chart.NumberAxis 54 * @related /Charts/Line/Line Chart 55 * @related /Charts/Scatter/Scatter Chart 56 * @docUrl http://docs.oracle.com/javafx/2/charts/jfxpub-charts.htm Using JavaFX Charts Tutorial 57 * @playground chart.data 58 * 59 * @playground - (name="xAxis") 60 * @playground xAxis.autoRanging 61 * @playground xAxis.forceZeroInRange 62 * @playground xAxis.lowerBound (min=-10, max=10, step=1) 63 * @playground xAxis.upperBound (min=-10, max=10, step=1) 64 * @playground xAxis.tickUnit (max=10, step=0.5) 65 * @playground xAxis.minorTickCount (max=16) 66 * @playground xAxis.minorTickLength (max=15) 67 * @playground xAxis.minorTickVisible 68 * 69 * @playground xAxis.animated 70 * @playground xAxis.label 71 * @playground xAxis.side 72 * @playground xAxis.tickLabelFill 73 * @playground xAxis.tickLabelGap 74 * @playground xAxis.tickLabelRotation (min=-180,max=180,step=1) 75 * @playground xAxis.tickLabelsVisible 76 * @playground xAxis.tickLength 77 * @playground xAxis.tickMarkVisible 78 * 79 * @playground - (name="yAxis") 80 * @playground yAxis.autoRanging 81 * @playground yAxis.forceZeroInRange 82 * @playground yAxis.lowerBound (min=-10, max=10, step=1) 83 * @playground yAxis.upperBound (min=-10, max=10, step=1) 84 * @playground yAxis.tickUnit (max=10, step=1) 85 * @playground yAxis.minorTickCount (max=16) 86 * @playground yAxis.minorTickLength (max=15) 87 * @playground yAxis.minorTickVisible 88 * 89 * @playground yAxis.animated 90 * @playground yAxis.label 91 * @playground yAxis.side 92 * @playground yAxis.tickLabelFill 93 * @playground yAxis.tickLabelGap 94 * @playground yAxis.tickLabelRotation (min=-180,max=180) 95 * @playground yAxis.tickLabelsVisible 96 * @playground yAxis.tickLength 97 * @playground yAxis.tickMarkVisible 98 * 99 * @playground - (name="chart") 100 * @playground chart.horizontalGridLinesVisible 101 * @playground chart.horizontalZeroLineVisible 102 * @playground chart.verticalGridLinesVisible 103 * @playground chart.verticalZeroLineVisible 104 * 105 * @playground chart.animated 106 * @playground chart.legendSide 107 * @playground chart.legendVisible 108 * @playground chart.title 109 * @playground chart.titleSide 110 * @embedded 111 */ 112 public class AreaChartApp extends Application { 113 114 private AreaChart chart; 115 private NumberAxis xAxis; 116 private NumberAxis yAxis; 117 118 public Parent createContent() { 119 xAxis = new NumberAxis(); 120 xAxis.setLabel("X Values"); 121 yAxis = new NumberAxis(); 122 yAxis.setLabel("Y Values"); 123 ObservableList<AreaChart.Series> areaChartData = FXCollections.observableArrayList( 124 new AreaChart.Series("Series 1",FXCollections.observableArrayList( 125 new AreaChart.Data(0,4), 126 new AreaChart.Data(2,5), 127 new AreaChart.Data(4,4), 128 new AreaChart.Data(6,2), 129 new AreaChart.Data(8,6), 130 new AreaChart.Data(10,8) 131 )), 132 new AreaChart.Series("Series 2", FXCollections.observableArrayList( 133 new AreaChart.Data(0,8), 134 new AreaChart.Data(2,2), 135 new AreaChart.Data(4,9), 136 new AreaChart.Data(6,7), 137 new AreaChart.Data(8,5), 138 new AreaChart.Data(10,7) 139 )), 140 new AreaChart.Series("Series 3", FXCollections.observableArrayList( 141 new AreaChart.Data(0,2), 142 new AreaChart.Data(2,5), 143 new AreaChart.Data(4,8), 144 new AreaChart.Data(6,6), 145 new AreaChart.Data(8,9), 146 new AreaChart.Data(10,7) 147 )) 148 ); 149 chart = new AreaChart(xAxis, yAxis, areaChartData); 150 return chart; 151 } 152 153 154 @Override public void start(Stage primaryStage) throws Exception { 155 primaryStage.setScene(new Scene(createContent())); 156 primaryStage.show(); 157 } 158 159 /** 160 * Java main for when running without JavaFX launcher 161 * @param args command line arguments 162 */ 163 public static void main(String[] args) { 164 launch(args); 165 } 166 }