Java自动化邮件中发送图表(四)之javafx Chart

一、Javafx Chart

JavaFX支持各种饼图和XY图表。在XY平面上表示的图表包括AreaChart,BarChart,BubbleChart,LineChart,ScatterChart,StackedAreaChart,StackedBarChart等。

注意:在Server JRE和无法初始化Javafx Toolkit的环境,无法导出图片。

 

二、Chart类型

(1)PieChart

Java自动化邮件中发送图表(四)之javafx Chart_第1张图片

(2)LineChart

Java自动化邮件中发送图表(四)之javafx Chart_第2张图片

(3)AreaChart

Java自动化邮件中发送图表(四)之javafx Chart_第3张图片

(4)BubbleChart

Java自动化邮件中发送图表(四)之javafx Chart_第4张图片

(5)BarChart

Java自动化邮件中发送图表(四)之javafx Chart_第5张图片

(6)ScatterChart

Java自动化邮件中发送图表(四)之javafx Chart_第6张图片

(7)StackedAreaChart

Java自动化邮件中发送图表(四)之javafx Chart_第7张图片

(8)StackedBarChart

Java自动化邮件中发送图表(四)之javafx Chart_第8张图片

 

三、Chart导出图片

import com.sun.javafx.application.PlatformImpl;
import java.io.File;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.Scene;
import javafx.scene.SnapshotParameters;
import javafx.scene.chart.Chart;
import javafx.scene.image.WritableImage;
import javax.imageio.ImageIO;

public class ChartTest {

    public static void export() {

        //creating the chart
        final Chart chart = createChart();
        //防止坐标刻度不显示
        chart.setAnimated(false);
        //必须添加到场景,否则图表不绘制
        Scene scene = new Scene(chart, 800, 600);
        WritableImage writableImage = new WritableImage(800, (int) 600);
        chart.snapshot(new SnapshotParameters(), writableImage);

        File fileA = new File("./chart.png");
        try {
            ImageIO.write(SwingFXUtils.fromFXImage(writableImage, null), "png", fileA);
        } catch (Exception s) {
            s.printStackTrace();
        }

    }

    public static Chart createChart(){
          Chart chart = null;
          //build chart
          return chart;
    }
    public static void main(String[] args) throws InterruptedException {

        PlatformImpl.startup(() -> {
            export();
            System.err.println("finish");
            System.exit(0);//退出程序
        });

    }
}

 

 

 

你可能感兴趣的:(java,Email,Java,图表.javafx,chart)