WritableImage image1 = chart1.snapshot(new SnapshotParameters(), null);
try {
File outputFile1 = new File("D:/JavaFX/会议地点占比.png");
ImageIO.write(SwingFXUtils.fromFXImage(image1, null), "png",outputFile1);
} catch (IOException ex) {
}
代码太少,看不出啥来,加我好友,
package application;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.embed.swing.SwingFXUtils;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.SnapshotParameters;
import javafx.scene.chart.BarChart;
import javafx.scene.chart.CategoryAxis;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.scene.image.WritableImage;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
int CDDuration[]= {2500,2300,220,1400,1500};
CategoryAxis xAxis2 = new CategoryAxis();
xAxis2.setLabel("办会单位");
NumberAxis yAxis2 = new NumberAxis(0,2700,10);
yAxis2.setLabel("办会总时长");
ObservableList<XYChart.Series<String,Number>> list_data=FXCollections.observableArrayList();
XYChart.Series<String, Number> xy= new XYChart.Series<String,Number>();
xy.setName("办会总时长");
ObservableList<XYChart.Data<String,Number>> data=FXCollections.observableArrayList();
XYChart.Data<String, Number> d1= new XYChart.Data<String, Number>("单位1",CDDuration[0]);
XYChart.Data<String, Number> d2= new XYChart.Data<String, Number>("单位2",CDDuration[1]);
XYChart.Data<String, Number> d3= new XYChart.Data<String, Number>("单位3",CDDuration[2]);
XYChart.Data<String, Number> d4= new XYChart.Data<String, Number>("单位4",CDDuration[3]);
XYChart.Data<String, Number> d5= new XYChart.Data<String, Number>("单位5",CDDuration[4]);
// XYChart.Series series5 = new XYchart.
data.add(d1);
data.add(d2);
data.add(d3);
data.add(d4);
data.add(d5);
xy.setData(data);
list_data.add(xy);
BarChart<String,Number> barChart1 = new BarChart<>(xAxis2,yAxis2,list_data);
barChart1.setTitle("各单位会议总时长");
try {
BorderPane root = new BorderPane();
Scene scene = new Scene(barChart1);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
SnapshotParameters params = new SnapshotParameters();
params.setFill(Color.TRANSPARENT);// 设置透明背景或其他颜色
WritableImage image5 = barChart1.snapshot(params, null);
try {
File outputFile5 = new File("D:/JavaFX/办会单位总时长.png");
ImageIO.write(SwingFXUtils.fromFXImage(image5, null), "png",outputFile5);
} catch (IOException ex) {
}
}
public static void main(String[] args) {
launch(args);
}
}