如何使用 JavaFX 建立餅圖?


在餅圖中,我們將資料值表示為圓的扇形。每個扇形都與其他扇形區分開來(通常透過顏色)。在 JavaFX 中,您可以透過例項化javafx.scene.chart.PieChart 類來建立餅圖。

此類提供了各種屬性,透過使用其各自的 setter 方法設定值,您可以自定義餅圖。

  • 餅圖的扇形預設情況下按順時針方向(從起始角度)放置。您可以透過將 clockwise 屬性設定為 false(使用setClockwise() 方法)來將其排列為逆時針方向。

  • 每個扇形都與一個標籤相關聯。(扇形名稱作為值)預設情況下,這些標籤是可見的。您可以透過使用setLabelsVisible() 方法將標籤可見屬性設定為 false 來使它們不可見。

  • 每個標籤都有一條線從相應的扇形指向它。您可以使用setLabelLineLength() 方法設定此線的長度。

  • PieChart 類包含一個型別為(PieChart.Data)的可觀察列表,該列表儲存資料項(用於扇形)。您可以使用setData() 方法將值設定為餅圖。此方法接受型別為ObservableList<PieChart.Data>的物件作為引數。

設定餅圖資料

PieChart.Data 類表示餅圖中的一個扇形,您可以透過例項化它來建立一個扇形(資料項)。此類的建構函式接受扇形的名稱(字串)及其值作為引數。

要將資料設定為餅圖,請透過例項化此類建立所有所需的扇形,使用建立的物件建立一個可觀察列表,如下所示:

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) {
      //Creating a Pie chart
      PieChart pieChart = new PieChart();
      //Setting data
      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);
      //Setting the other properties
      pieChart.setTitle("Activities");
      pieChart.setClockwise(true);
      pieChart.setLabelLineLength(10);
      pieChart.setLabelsVisible(true);
      pieChart.setStartAngle(360);
      //Creating a stack pane to hold the pie chart
      StackPane pane = new StackPane(pieChart);
      //Setting the Scene
      Scene scene = new Scene(pane, 600, 350);
      stage.setTitle("Pie chart");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

輸出

更新於: 2020年5月19日

306 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告