Skip to Main Content

Java SE (Java Platform, Standard Edition)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How to save the chart to image file

971835Nov 1 2012 — edited Nov 1 2012
I try use JavaFx create a AreaChart and want to save as .png file. But the saved image is blank. Who can help me? Thanks.

Below is my sample code.


public class AreaChartSample extends Application {

@Override
public void start(Stage stage) {
stage.setTitle("Area Chart Sample");
final NumberAxis xAxis = new NumberAxis(1, 31, 1);
final NumberAxis yAxis = new NumberAxis();
final AreaChart<Number, Number> ac = new AreaChart<Number, Number>(
xAxis, yAxis);
ac.setTitle("Temperature Monitoring (in Degrees C)");

XYChart.Series seriesApril = new XYChart.Series();
seriesApril.setName("April");
seriesApril.getData().add(new XYChart.Data(1, 4));
seriesApril.getData().add(new XYChart.Data(3, 10));
seriesApril.getData().add(new XYChart.Data(6, 15));
seriesApril.getData().add(new XYChart.Data(9, 8));
seriesApril.getData().add(new XYChart.Data(12, 5));
seriesApril.getData().add(new XYChart.Data(15, 18));
seriesApril.getData().add(new XYChart.Data(18, 15));
seriesApril.getData().add(new XYChart.Data(21, 13));
seriesApril.getData().add(new XYChart.Data(24, 19));
seriesApril.getData().add(new XYChart.Data(27, 21));
seriesApril.getData().add(new XYChart.Data(30, 21));

XYChart.Series seriesMay = new XYChart.Series();
seriesMay.setName("May");
seriesMay.getData().add(new XYChart.Data(1, 20));
seriesMay.getData().add(new XYChart.Data(3, 15));
seriesMay.getData().add(new XYChart.Data(6, 13));
seriesMay.getData().add(new XYChart.Data(9, 12));
seriesMay.getData().add(new XYChart.Data(12, 14));
seriesMay.getData().add(new XYChart.Data(15, 18));
seriesMay.getData().add(new XYChart.Data(18, 25));
seriesMay.getData().add(new XYChart.Data(21, 25));
seriesMay.getData().add(new XYChart.Data(24, 23));
seriesMay.getData().add(new XYChart.Data(27, 26));
seriesMay.getData().add(new XYChart.Data(31, 26));

Scene scene = new Scene(ac, 800, 600);
ac.getData().addAll(seriesApril, seriesMay);
stage.setScene(scene);
stage.show();

WritableImage wim = new WritableImage((int) stage.getWidth(),
(int) stage.getHeight());
scene.snapshot(wim);

File file = new File("D:\\AreaChartImage.png");

try {
ImageIO.write(SwingFXUtils.fromFXImage(wim, null), "png", file);
} catch (Exception s) {
}

System.out.println("finished");

// Platform.exit();
}

public static void main(String[] args) {
launch(args);
}

}
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 29 2012
Added on Nov 1 2012
4 comments
3,241 views