zxc1899811
2021-06-27 11:40
采纳率: 100%
浏览 41
已采纳

javafx 图表导出图片 横竖坐标都消失了

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) {  
              
          }  

 

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 已采纳

    代码太少,看不出啥来,加我好友,

    已采纳该答案
    1 打赏 评论
  • zxc1899811 2021-06-27 11:57

    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);
        }
    }
     

    打赏 评论

相关推荐 更多相似问题