I made a really short app, which uses javafx to generate a chart. App shows the right values(chart) but when I do snapshot, image shows just an axis and labels, but not the series and values.
stage.setTitle("Line Chart Sample");
final DateAxis xAxis = new DateAxis();
final NumberAxis yAxis = new NumberAxis();
xAxis.setLabel("Number of Month");
yAxis.setLabel("Count");
final LineChart<Date, Number> lineChart = new LineChart<>(xAxis,yAxis);
Scene scene = new Scene(lineChart,1000,700);
lineChart.setTitle("Stock Monitoring, 2010");
XYChart.Series series = new XYChart.Series();
series.setName("My portfolio");
series.getData().add(new XYChart.Data(new GregorianCalendar(2012, 11, 15).getTime(), 23));
series.getData().add(new XYChart.Data(new GregorianCalendar(2012, 11, 16).getTime(), 14));
series.getData().add(new XYChart.Data(new GregorianCalendar(2012, 11, 17).getTime(), 15));
series.getData().add(new XYChart.Data(new GregorianCalendar(2012, 11, 18).getTime(), 24));
series.getData().add(new XYChart.Data(new GregorianCalendar(2012, 11, 19).getTime(), 34));
series.getData().add(new XYChart.Data(new GregorianCalendar(2012, 11, 20).getTime(), 36));
series.getData().add(new XYChart.Data(new GregorianCalendar(2012, 11, 21).getTime(), 22));
lineChart.getData().add(series);
stage.setScene(scene);
stage.show();
WritableImage img = new WritableImage(1000, 700);
File file = new File("saved.png");
scene.snapshot(img);
RenderedImage renderedImage = SwingFXUtils.fromFXImage(img, null);
ImageIO.write(renderedImage,"png", file);
I have no idea what I am doing wrong.