JavaFX - 饼图

  • 简述

    饼图将值表示为具有不同颜色的圆的切片。这些切片被标记并且与每个切片对应的值在图表中表示。
    以下是一个饼图,描绘了各个公司的移动销售实例。
    移动销售饼图
    在 JavaFX 中,饼图由一个名为的类表示 PieChart. 这个类属于包javafx.scene.chart.
    通过实例化此类,您可以在 JavaFX 中创建 PieChart 节点。
    这个类有 5 个属性,如下所示 -
    • clockwise- 这是一个布尔运算符;将此运算符设置为 true 时,饼图中的数据切片将从饼图的起始角度开始顺时针排列。
    • data - 这代表一个 ObservableList 对象,它保存饼图的数据。
    • labelLineLength - 一个整数运算符,表示连接标签和饼图切片的线的长度。
    • labelsVisible- 这是一个布尔运算符;将此运算符设置为 true 时,将绘制饼图的标签。默认情况下,此运算符设置为 true。
    • startAngle - 这是一个双精度型运算符,表示第一个饼图切片的起始角度。
    要生成饼图,请准备一个 ObservableList 对象,如以下代码块所示 -
    
    //Preparing ObservbleList object         
    ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList( 
       new PieChart.Data("Iphone 5S", 13), 
       new PieChart.Data("Samsung Grand", 25), 
       new PieChart.Data("MOTO G", 10), 
       new PieChart.Data("Nokia Lumia", 22)); 
    
    准备好后 ObservableList 对象,将其作为参数传递给类的构造函数 PieChart 如下 -
    
    //Creating a Pie chart 
    PieChart pieChart = new PieChart(pieChartData);
    
    或者,通过使用名为的方法 setData() 类名为 PieChart 包名为 javafx.scene.chart.
    
    pieChart.setData(pieChartData);
    
  • 生成饼图的步骤

    生成一个 PieChart 在 JavaFX 中,请按照以下步骤操作。

    第 1 步:创建一个类

    创建一个Java类并继承 Application 包的类别 javafx.application 并实施 start() 这个类的方法如下。
    
    public class ClassName extends Application {  
       @Override     
       public void start(Stage primaryStage) throws Exception {     
       }    
    }
    

    第 2 步:准备 ObservableList 对象

    准备一个接口对象 ObservableList 对象通过传递饼图的数据如下所示 -
    
    ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList( 
       new PieChart.Data("Iphone 5S", 13), 
       new PieChart.Data("Samsung Grand", 25), 
       new PieChart.Data("MOTO G", 10), 
       new PieChart.Data("Nokia Lumia", 22));
    

    第 3 步:创建饼图对象

    创建一个 PieChart 通过通过 ObservableList 对象如下图。
    
    //Creating a Pie chart 
    PieChart pieChart = new PieChart(pieChartData);
    

    第 4 步:设置饼图的标题

    使用 setTitle() 类的方法 PieChart. 这个属于包javafx.scene.chart
    
    //Setting the title of the Pie chart 
    pieChart.setTitle("Mobile Sales");
    

    第 5 步:顺时针设置切片

    顺时针设置饼图的切片。这是通过将布尔值 true 传递给setClockwise() 类的方法 PieChart. 这个属于包javafx.scene.chart
    
    //setting the direction to arrange the data 
    pieChart.setClockwise(true);
    

    步骤 6:设置标签线的长度

    使用 setLabelLineLength() 类的方法 PieChart 属于包 javafx.scene.chart,如下 -
    
    //Setting the length of the label line 
    pieChart.setLabelLineLength(50);
    

    第 7 步:设置标签可见

    通过传递布尔值将饼图的标签设置为可见 true 到方法 setLabelsVisible() 班级的 PieChart. 这个属于包javafx.scene.chart
    
    //Setting the labels of the pie chart visible  
    pieChart.setLabelsVisible(true);
    

    第八步:设置饼图的起始角度

    使用 setStartAngle() 类的方法 PieChart. 这个属于包javafx.scene.chart
    
    //Setting the start angle of the pie chart 
    pieChart.setStartAngle(180); 
    

    步骤 9:创建组对象

    在里面 start()方法,通过实例化名为 Group 的类来创建一个组对象。这个属于包javafx.scene.
    将在上一步中创建的 PieChart(节点)对象作为参数传递给 Group 类的构造函数。这样做是为了将其添加到组中,如下所示 -
    
    Group root = new Group(piechart);
    

    步骤 10:创建场景对象

    通过实例化名为的类来创建场景 Scene,属于包 javafx.scene. 向这个类传递 Group 对象 (root) 在上一步中创建。
    除了根对象,您还可以传递两个表示屏幕高度和宽度的双参数,以及如下所示的 Group 类的对象。
    
    Scene scene = new Scene(group ,600, 300);
    

    第 11 步:设置舞台的标题

    您可以使用 setTitle() 的方法 Stage班级。这primaryStage 是一个Stage Object,作为参数传递给场景类的start方法。
    使用 primaryStage 对象,将场景的标题设置为 Sample Application 如下。
    
    primaryStage.setTitle("Sample Application");
    

    第 12 步:将场景添加到舞台

    您可以使用方法将 Scene 对象添加到舞台 setScene() 类名为 Stage. 使用此方法添加前面步骤中准备的 Scene 对象,如下所示。
    
    primaryStage.setScene(scene);
    

    第 13 步:显示舞台内容

    使用名为的方法显示场景的内容 show()Stage 类如下。
    
    primaryStage.show();
    

    第 14 步:启动应用程序

    通过调用静态方法启动 JavaFX 应用程序 launch()Application 类从主要方法如下。
    
    public static void main(String args[]){   
       launch(args);      
    }   
    

    例子

    下表在饼图的帮助下描述了移动销售。下表列出了不同的移动品牌及其销售额(每天的单位)。
    序号 移动品牌 销售额(单位/天)
    1 IPhone 5S 20
    2 三星大酒店 20
    3 摩托 40
    4 诺基亚 Lumia 10
    以下是生成饼图的 Java 程序,使用 JavaFX 描述上述数据。将此代码保存在名称为的文件中PieChartExample.java.
    
    import javafx.application.Application; 
    import javafx.collections.FXCollections;  
    import javafx.collections.ObservableList; 
    import javafx.scene.Group; 
    import javafx.scene.Scene; 
    import javafx.stage.Stage; 
    import javafx.scene.chart.PieChart; 
             
    public class PieChartExample extends Application {  
       @Override 
       public void start(Stage stage) { 
          //Preparing ObservbleList object         
          ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList(
             new PieChart.Data("Iphone 5S", 13), 
             new PieChart.Data("Samsung Grand", 25), 
             new PieChart.Data("MOTO G", 10), 
             new PieChart.Data("Nokia Lumia", 22)); 
           
          //Creating a Pie chart 
          PieChart pieChart = new PieChart(pieChartData); 
                  
          //Setting the title of the Pie chart 
          pieChart.setTitle("Mobile Sales"); 
           
          //setting the direction to arrange the data 
          pieChart.setClockwise(true); 
           
          //Setting the length of the label line 
          pieChart.setLabelLineLength(50); 
          //Setting the labels of the pie chart visible  
          pieChart.setLabelsVisible(true); 
           
          //Setting the start angle of the pie chart  
          pieChart.setStartAngle(180);     
             
          //Creating a Group object  
          Group root = new Group(pieChart); 
             
          //Creating a scene object 
          Scene scene = new Scene(root, 600, 400);  
          
          //Setting title to the Stage 
          stage.setTitle("Pie chart"); 
             
          //Adding scene to the stage 
          stage.setScene(scene); 
             
          //Displaying the contents of the stage 
          stage.show();         
       }     
       public static void main(String args[]){ 
          launch(args); 
       } 
    } 
    
    使用以下命令从命令提示符编译并执行保存的 java 文件。
    
    javac PieChartExample.java 
    java PieChartExample
    
    执行时,上述程序会生成一个 JavaFX 窗口,显示饼图,如下所示。
    饼形图