Javafx-pie-chart
JavaFX-円グラフ
円グラフは、異なる色の円のスライスとしての値の表現です。 これらのスライスにはラベルが付けられ、各スライスに対応する値がチャートに表示されます。
以下は、インスタンスでのさまざまな企業のモバイル販売を示す円グラフです。
JavaFXでは、円グラフは PieChart という名前のクラスで表されます。 このクラスは、パッケージ javafx.scene.chart に属します。
このクラスをインスタンス化することにより、JavaFXでPieChartノードを作成できます。
このクラスには次の5つのプロパティがあります-
- 時計回り-これはブール演算子です。この演算子をtrueに設定すると、円グラフのデータスライスは円グラフの開始角度から時計回りに配置されます。
- data -これは ObservableList オブジェクトを表し、円グラフのデータを保持します。
- labelLineLength -ラベルと円グラフのスライスを接続する線の長さを表す整数演算子。
- labelsVisible -これはブール演算子です。この演算子をtrueに設定すると、円グラフのラベルが描画されます。 デフォルトでは、この演算子はtrueに設定されています。
- startAngle -これは、最初の円スライスを開始する角度を表すdouble型の演算子です。
円グラフを生成するには、次のコードブロックに示すようにObservableListオブジェクトを準備します-
//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));
*ObservableList* オブジェクトを準備した後、次のように引数としてクラス *PieChart* のコンストラクタに渡します-
//Creating a Pie chart
PieChart pieChart = new PieChart(pieChartData);
または、 javafx.scene.chart という名前のパッケージの PieChart という名前のクラスの* setData()*という名前のメソッドを使用します。
pieChart.setData(pieChartData);
円グラフを生成する手順
JavaFXで PieChart を生成するには、以下の手順に従います。
ステップ1:クラスを作成する
Javaクラスを作成し、パッケージ javafx.application の Application クラスを継承し、このクラスの* start()*メソッドを次のように実装します。
public class ClassName extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
}
}
ステップ2:ObservableListオブジェクトの準備
以下に示すように、円グラフのデータを渡すことにより、インターフェイス ObservableList オブジェクトのオブジェクトを準備します-
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:PieChartオブジェクトを作成する
以下に示すように、 ObservableList オブジェクトを渡して PieChart を作成します。
//Creating a Pie chart
PieChart pieChart = new PieChart(pieChartData);
ステップ4:円グラフのタイトルを設定する
クラス PieChart の* setTitle()メソッドを使用して、円グラフのタイトルを設定します。 これはパッケージ *javafx.scene.chart に属します-
//Setting the title of the Pie chart
pieChart.setTitle("Mobile Sales");
ステップ5:スライスを時計回りに設定する
円グラフのスライスを時計回りに設定します。 これは、ブール値trueをクラス PieChart の* setClockwise()メソッドに渡すことで実行されます。 これはパッケージ *javafx.scene.chart に属します-
//setting the direction to arrange the data
pieChart.setClockwise(true);
ステップ6:ラベルラインの長さを設定する
次のように、パッケージ javafx.scene.chart に属するクラス PieChart の* setLabelLineLength()*メソッドを使用して、ラベル行の長さを設定します-
//Setting the length of the label line
pieChart.setLabelLineLength(50);
ステップ7:ラベルの表示を設定する
ブール値 true をクラス PieChart のメソッド* setLabelsVisible()に渡すことにより、円グラフのラベルを可視に設定します。 これはパッケージ *javafx.scene.chart に属します-
//Setting the labels of the pie chart visible
pieChart.setLabelsVisible(true);
ステップ8:円グラフの開始角度を設定する
クラス PieChart の* setStartAngle()メソッドを使用して、円グラフの開始角度を設定します。 これはパッケージ *javafx.scene.chart に属します-
//Setting the start angle of the pie chart
pieChart.setStartAngle(180);
ステップ9:グループオブジェクトの作成
- start()メソッドで、Groupという名前のクラスをインスタンス化してグループオブジェクトを作成します。 これはパッケージ *javafx.scene に属します。
前の手順で作成したPieChart(ノード)オブジェクトをパラメーターとしてGroupクラスのコンストラクターに渡します。 これは、次のようにグループに追加するために行う必要があります-
Group root = new Group(piechart);
ステップ10:シーンオブジェクトの作成
パッケージ javafx.scene に属する Scene という名前のクラスをインスタンス化して、シーンを作成します。 このクラスに、前の手順で作成したGroupオブジェクト( root )を渡します。
ルートオブジェクトに加えて、画面の高さと幅を表す2つのdoubleパラメーターを、以下に示すようにGroupクラスのオブジェクトとともに渡すこともできます。
Scene scene = new Scene(group ,600, 300);
ステップ11:ステージのタイトルを設定する
*Stage* クラスの* setTitle()*メソッドを使用して、ステージにタイトルを設定できます。 *primaryStage* はステージオブジェクトであり、シーンクラスのstartメソッドにパラメーターとして渡されます。
*primaryStage* オブジェクトを使用して、シーンのタイトルを次のように *Sample Application* として設定します。
primaryStage.setTitle("Sample Application");
ステップ12:シーンをステージに追加する
*Stage* という名前のクラスの* setScene()*メソッドを使用して、Sceneオブジェクトをステージに追加できます。 以下に示すように、このメソッドを使用して、前の手順で準備したSceneオブジェクトを追加します。
primaryStage.setScene(scene);
ステップ13:ステージのコンテンツを表示する
次のように Stage クラスの* show()*という名前のメソッドを使用して、シーンのコンテンツを表示します。
primaryStage.show();
ステップ14:アプリケーションの起動
次のように、メインメソッドから Application クラスの* launch()*静的メソッドを呼び出して、JavaFXアプリケーションを起動します。
public static void main(String args[]){
launch(args);
}
例
以下の表は、円グラフを使用したモバイル販売を示しています。 次の表に、さまざまなモバイルブランドとその販売(1日あたりのユニット数)のリストを示します。
S.No | Mobile Brands | Sales (Units per day) |
---|---|---|
1 | Iphone 5S | 20 |
2 | Samsung Grand | 20 |
3 | MOTO G | 40 |
4 | Nokia Lumia | 10 |
以下は、JavaFXを使用して上記のデータを描く円グラフを生成するJavaプログラムです。 このコードを 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);
}
}
次のコマンドを使用して、コマンドプロンプトから保存したJavaファイルをコンパイルして実行します。
javac PieChartExample.java
java PieChartExample
実行すると、上記のプログラムは、以下に示すような円グラフを表示するJavaFXウィンドウを生成します。