如何使用JavaFX创建饼图?

在饼图中,我们将数据值表示为一个圆的切片。每个切片彼此不同(通常通过颜色)。在JavaFX中,可以通过实例化javafx.scene.chart.PieChart类来创建饼图。

此类提供了各种属性,通过使用它们各自的setter方法为它们设置值,可以自定义饼图。

  • 默认情况下,饼图的切片按顺时针方向(从起始角度)放置。您可以使用setClockwise()方法将顺时针属性设置为false来逆时针排列它们。 

  • 每个切片与一个标签关联。(切片的名称作为值)默认情况下,这些标签是可见的。您可以使用setLabelsVisible()方法将标签的visible属性设置为false来使其不可见。

  • 每个标签都有一条从相应切片指向其的线。您可以使用setLabelLineLength()方法设置此行的长度。

  • 该饼图类包含类型的可观察名单(PieChart.Data)保存数据的项目(片)。您可以使用setData()方法将值设置为饼图。此方法接受ObservableList <PieChart.Data>类型的对象作为参数。

将数据设置到饼图中

PieChart.Data类表示饼图中的一个切片,您可以通过实例化切片(数据项)。此类的构造函数接受slice(String)的名称及其值作为参数。

要将数据设置为饼图,请通过实例化此类来创建所有必需的切片,并使用创建的对象将可观察的列表创建为-

PieChart.Data obj1 = new PieChart.Data(name, value);

PieChart.Data obj2 = new PieChart.Data(name, value);…

ObservableList<PieChart.Data> data = FXCollections.observableArrayList(onj1, obj2,

obj3, etc….);

然后,使用setData()方法将列表设置为data属性的值。

示例

import javafx.application.Application;

import javafx.collections.FXCollections;

import javafx.collections.ObservableList;

import javafx.scene.Scene;

import javafx.stage.Stage;

import javafx.scene.chart.PieChart;

import javafx.scene.layout.StackPane;

public class PieChartExample extends Application {

   public void start(Stage stage) {

      //创建饼图

      PieChart pieChart = new PieChart();

      //设定数据

      ObservableList<PieChart.Data> data = FXCollections.observableArrayList(

         new PieChart.Data("Work", 10),

         new PieChart.Data("Chores", 2),

         new PieChart.Data("Sleep", 8),

         new PieChart.Data("Others", 4)

      );

      pieChart.setData(data);

      //设置其他属性

      pieChart.setTitle("Activities");

      pieChart.setClockwise(true);

      pieChart.setLabelLineLength(10);

      pieChart.setLabelsVisible(true);

      pieChart.setStartAngle(360);

      //创建堆栈窗格以容纳饼图

      StackPane pane = new StackPane(pieChart);

      //设置场景

      Scene scene = new Scene(pane, 600, 350);

      stage.setTitle("Pie chart");

      stage.setScene(scene);

      stage.show();

   }

   public static void main(String args[]){

      launch(args);

   }

}

以上是 如何使用JavaFX创建饼图? 的全部内容, 来源链接: utcz.com/z/317163.html

回到顶部