如何使用 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);
}
}輸出

廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP