JavaFX图表(二)之饼图
翻譯自? ?JavaFX - 餅圖
餅圖是將值表示為具有不同顏色的圓的切片。標(biāo)記這些切片,并且在圖表中表示與每個(gè)切片對(duì)應(yīng)的值。
以下是一張餅圖,描繪了一個(gè)實(shí)例中各公司的移動(dòng)銷售情況。
?
在JavaFX中,餅圖由名為PieChart的類表示。該類屬于包javafx.scene.chart。
通過(guò)實(shí)例化此類,您可以在JavaFX中創(chuàng)建PieChart節(jié)點(diǎn)。
這個(gè)類有5個(gè)屬性,如下 -
-
順時(shí)針?- 這是一個(gè)布爾運(yùn)算符;?將此運(yùn)算符設(shè)置為true時(shí),餅圖中的數(shù)據(jù)切片將從餅圖的起始角開(kāi)始順時(shí)針排列。
-
data?- 這表示一個(gè)ObservableList對(duì)象,它保存餅圖的數(shù)據(jù)。
-
labelLineLength?- 一個(gè)整數(shù)運(yùn)算符,表示連接標(biāo)簽和餅圖切片的線條的長(zhǎng)度。
-
labelsVisible?- 這是一個(gè)布爾運(yùn)算符;?設(shè)置此運(yùn)算符為true時(shí),將繪制餅圖的標(biāo)簽。默認(rèn)情況下,此運(yùn)算符設(shè)置為true。
-
startAngle?- 這是一個(gè)double類型的運(yùn)算符,表示啟動(dòng)第一個(gè)餅圖切片的角度。
要生成餅圖,請(qǐng)準(zhǔn)備ObservableList對(duì)象,如以下代碼塊所示 -
//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));在準(zhǔn)備ObservableList對(duì)象之后,將它作為參數(shù)傳遞給類PieChart的構(gòu)造函數(shù),如下所示 -
<span style="color:#313131">//Creating a Pie chart PieChart pieChart = new PieChart(pieChartData); </span>或者,通過(guò)使用指定的方法使用setData()命名的類的餅圖包命名的javafx.scene.chart。
pieChart.setData(pieChartData);生成餅圖的步驟
要在JavaFX中生成PieChart,請(qǐng)按照以下步驟操作。
第1步:創(chuàng)建一個(gè)類
創(chuàng)建一個(gè)Java類并繼承包javafx.application的Application類,并按如下方式實(shí)現(xiàn)此類的start()方法。
public class ClassName extends Application { @Override public void start(Stage primaryStage) throws Exception { } }第2步:準(zhǔn)備ObservableList對(duì)象
通過(guò)傳遞餅圖的數(shù)據(jù)來(lái)準(zhǔn)備接口ObservableList對(duì)象的對(duì)象,如下所示 -
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步:創(chuàng)建PieChart對(duì)象
通過(guò)傳遞ObservableList對(duì)象來(lái)創(chuàng)建PieChart,如下所示。
//Creating a Pie chart PieChart pieChart = new PieChart(pieChartData);第4步:設(shè)置餅圖的標(biāo)題
使用類PieChart的setTitle()方法設(shè)置餅圖的標(biāo)題。這屬于包javafx.scene.chart-
//Setting the title of the Pie chart pieChart.setTitle("Mobile Sales");第5步:順時(shí)針設(shè)置切片
順時(shí)針設(shè)置餅圖的切片。這是通過(guò)布爾值真到完成setClockwise()之類的方法餅圖。這屬于包javafx.scene.chart?-
//setting the direction to arrange the data pieChart.setClockwise(true);第6步:設(shè)置標(biāo)簽線的長(zhǎng)度
使用屬于包javafx.scene.chart的類PieChart的setLabelLineLength()方法設(shè)置標(biāo)簽行的長(zhǎng)度,如下所示 -
//Setting the length of the label line pieChart.setLabelLineLength(50);第7步:設(shè)置標(biāo)簽可見(jiàn)
通過(guò)將布爾值true傳遞給類PieChart的方法setLabelsVisible(),將餅圖的標(biāo)簽設(shè)置為可見(jiàn)。這屬于包javafx.scene.chart?-
//Setting the labels of the pie chart visible pieChart.setLabelsVisible(true);步驟8:設(shè)置餅圖的起始角度
使用類PieChart的setStartAngle()方法設(shè)置餅圖的起始角度。這屬于包javafx.scene.chart?-
//Setting the start angle of the pie chart pieChart.setStartAngle(180);第9步:創(chuàng)建組對(duì)象
在start()方法中,通過(guò)實(shí)例化名為Group的類來(lái)創(chuàng)建組對(duì)象。這屬于包javafx.scene。
將在上一步中創(chuàng)建的PieChart(節(jié)點(diǎn))對(duì)象作為參數(shù)傳遞給Group類的構(gòu)造函數(shù)。這應(yīng)該是為了將它添加到組中,如下所示 -
Group root = new Group(piechart);第10步:創(chuàng)建場(chǎng)景對(duì)象
通過(guò)實(shí)例化名為Scene的類來(lái)創(chuàng)建一個(gè)Scene,該類屬于包javafx.scene。在此類中,傳遞上一步中創(chuàng)建的Group對(duì)象(root)。
除了根對(duì)象之外,您還可以傳遞兩個(gè)表示屏幕高度和寬度的雙參數(shù),以及Group類的對(duì)象,如下所示。
Scene scene = new Scene(group ,600, 300);第11步:設(shè)置舞臺(tái)的標(biāo)題
您可以使用Stage類的setTitle()方法將標(biāo)題設(shè)置為舞臺(tái)。所述primaryStage是Stage對(duì)象,它被傳遞給場(chǎng)景類作為參數(shù)的啟動(dòng)方法。
使用primaryStage對(duì)象,將場(chǎng)景標(biāo)題設(shè)置為Sample Application,如下所示。
primaryStage.setTitle("Sample Application");第12步:將場(chǎng)景添加到舞臺(tái)
您可以使用名為Stage的類的方法setScene()將Scene對(duì)象添加到舞臺(tái)。使用此方法添加在前面步驟中準(zhǔn)備的Scene對(duì)象,如下所示。
primaryStage.setScene(scene);步驟13:顯示舞臺(tái)的內(nèi)容
顯示場(chǎng)景的使用命名的方法的內(nèi)容顯示()的的階段類,如下所示。
primaryStage.show();第14步:啟動(dòng)應(yīng)用程序
通過(guò)從main方法調(diào)用Application類的靜態(tài)方法launch()來(lái)啟動(dòng)JavaFX應(yīng)用程序,如下所示。
public static void main(String args[]){ launch(args); }例
下面的表格描繪了在餅圖的幫助下的移動(dòng)銷售。下表列出了不同的移動(dòng)品牌及其銷售(每天的單位)。
| 1 | IPhone 5S | 20 |
| 2 | 三星大 | 20 |
| 3 | 摩托車 | 40 |
| 4 | 諾基亞Lumia | 10 |
以下是一個(gè)Java程序,它生成一個(gè)餅圖,使用JavaFX描述上述數(shù)據(jù)。將此代碼保存在名為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); } }使用以下命令從命令提示符編譯并執(zhí)行保存的java文件。
javac PieChartExample.java java PieChartExample執(zhí)行時(shí),上述程序生成一個(gè)顯示餅圖的JavaFX窗口,如下所示。
?
總結(jié)
以上是生活随笔為你收集整理的JavaFX图表(二)之饼图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Javafx的WebEngine的url
- 下一篇: JavaFX图表(一)