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