import java.util.Arrays; import java.util.Comparator; import java.util.Random; import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.Scene; import javafx.scene.chart.LineChart; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; import javafx.scene.control.Slider; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class JavaCharts extends Application { static { System.setProperty("javafx.userAgentStylesheetUrl", "CASPIAN"); } public static void main(String[] args) { launch(args); } NumberAxis axis1 = new NumberAxis(0, 100, 10); NumberAxis axis2 = new NumberAxis(0, 100, 10); LineChart testedLineChart = new LineChart(axis1, axis2); VBox vb = new VBox(); @Override public void start(Stage stage) throws Exception { testedLineChart.setTitle("LineChart"); testedLineChart.setStyle("-fx-border-color: darkgray;"); ObservableList list = FXCollections.observableArrayList(); int max = 100; int min = 30; for (int i = 0; i < 30; i++) { XYChart.Data newData = new XYChart.Data(); newData.setXValue(new Random().nextDouble() * (max - min) + min); newData.setYValue(new Random().nextDouble() * (max - min) + min); list.add(newData); } Object[] array = list.toArray(); Arrays.sort(array, new Comparator() { @Override public int compare(Object t, Object t1) { return (int) Math.round(((Double) ((XYChart.Data) t).getXValue()) - ((Double) ((XYChart.Data) t1).getXValue())); } }); XYChart.Series serie = new XYChart.Series("serie", FXCollections.observableArrayList(array)); testedLineChart.getData().add(serie); testedLineChart.setHorizontalGridLinesVisible(false); testedLineChart.setVerticalGridLinesVisible(false); testedLineChart.setAlternativeColumnFillVisible(true); testedLineChart.setAlternativeRowFillVisible(true); Pane pane = new Pane(); pane.setPrefSize(600, 600); Slider slider1 = new Slider(0, 50, 5); slider1.setPrefWidth(500); slider1.setMajorTickUnit(1); slider1.setMinorTickCount(0); slider1.snapToTicksProperty().setValue(true); slider1.valueProperty().bindBidirectional(axis1.upperBoundProperty()); slider1.setShowTickLabels(true); slider1.setShowTickMarks(true); Slider slider2 = new Slider(0, 50, 5); slider2.setPrefWidth(500); slider2.setMajorTickUnit(1); slider2.setMinorTickCount(0); slider2.snapToTicksProperty().setValue(true); slider2.valueProperty().bindBidirectional(axis2.upperBoundProperty()); slider2.setShowTickLabels(true); slider2.setShowTickMarks(true); pane.setPrefSize(600, 600); pane.getChildren().add(testedLineChart); vb.getChildren().addAll(pane, slider1, slider2); Scene scene = new Scene(vb, 700, 700); scene.getStylesheets().add("test.css"); System.setProperty("http.proxyHost", "www-proxy.uk.oracle.com"); System.setProperty("http.proxyPort", "80"); stage.setScene(scene); stage.show(); } }