JavaFX - Graphique à secteurs

Un camembert est une représentation des valeurs sous forme de tranches d'un cercle de différentes couleurs. Ces tranches sont étiquetées et les valeurs correspondant à chaque tranche sont représentées dans le graphique.

Vous trouverez ci-dessous un graphique à secteurs illustrant les ventes mobiles de diverses entreprises dans une instance.

Dans JavaFX, un graphique à secteurs est représenté par une classe nommée PieChart. Cette classe appartient au packagejavafx.scene.chart.

En instanciant cette classe, vous pouvez créer un nœud PieChart dans JavaFX.

Cette classe a 5 propriétés qui sont les suivantes -

  • clockwise- Ceci est un opérateur booléen; en définissant cet opérateur sur true, les tranches de données dans les graphiques à secteurs seront disposées dans le sens des aiguilles d'une montre à partir de l'angle de départ du graphique à secteurs.

  • data - Cela représente un ObservableList objet, qui contient les données du graphique à secteurs.

  • labelLineLength - Un opérateur entier représentant la longueur des lignes reliant les étiquettes et les tranches du camembert.

  • labelsVisible- Ceci est un opérateur booléen; en définissant cet opérateur sur true, les étiquettes des graphiques à secteurs seront dessinées. Par défaut, cet opérateur est défini sur true.

  • startAngle - Il s'agit d'un opérateur de type double, qui représente l'angle de départ de la première tranche de tarte.

Pour générer un graphique à secteurs, préparez un objet ObservableList comme indiqué dans le bloc de code suivant -

//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));

Après avoir préparé le ObservableList object, passez-le comme argument au constructeur de la classe PieChart comme suit -

//Creating a Pie chart 
PieChart pieChart = new PieChart(pieChartData);

Ou, en utilisant la méthode nommée setData() de la classe nommée PieChart du package nommé javafx.scene.chart.

pieChart.setData(pieChartData);

Étapes pour générer un graphique à secteurs

Pour générer un PieChart dans JavaFX, suivez les étapes ci-dessous.

Étape 1: Créer une classe

Créez une classe Java et héritez du Application classe du package javafx.application et mettre en œuvre le start() méthode de cette classe comme suit.

public class ClassName extends Application {  
   @Override     
   public void start(Stage primaryStage) throws Exception {     
   }    
}

Étape 2: préparation de l'objet ObservableList

Préparer un objet de l'interface ObservableList objet en passant les données du graphique à secteurs comme indiqué ci-dessous -

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));

Étape 3: Création d'un objet PieChart

Créer un PieChart en passant le ObservableList objet comme indiqué ci-dessous.

//Creating a Pie chart 
PieChart pieChart = new PieChart(pieChartData);

Étape 4: Définition du titre du graphique à secteurs

Définissez le titre du graphique à secteurs à l'aide du setTitle() méthode de la classe PieChart. Cela appartient au packagejavafx.scene.chart -

//Setting the title of the Pie chart 
pieChart.setTitle("Mobile Sales");

Étape 5: Réglage des tranches dans le sens des aiguilles d'une montre

Définissez les tranches des graphiques à secteurs dans le sens des aiguilles d'une montre. Cela se fait en passant la valeur booléenne true ausetClockwise() méthode de la classe PieChart. Cela appartient au packagejavafx.scene.chart -

//setting the direction to arrange the data 
pieChart.setClockwise(true);

Étape 6: définir la longueur de la ligne d'étiquette

Définissez la longueur de la ligne d'étiquette à l'aide du setLabelLineLength() méthode de la classe PieChart qui appartient au package javafx.scene.chart, comme suit -

//Setting the length of the label line 
pieChart.setLabelLineLength(50);

Étape 7: définir les étiquettes visibles

Définissez les étiquettes du graphique à secteurs sur visible en transmettant la valeur booléenne true à la méthode setLabelsVisible() de la classe PieChart. Cela appartient au packagejavafx.scene.chart -

//Setting the labels of the pie chart visible  
pieChart.setLabelsVisible(true);

Étape 8: définir l'angle de départ du graphique à secteurs

Définissez l'angle de départ du graphique à secteurs à l'aide du setStartAngle() méthode de la classe PieChart. Cela appartient au packagejavafx.scene.chart -

//Setting the start angle of the pie chart 
pieChart.setStartAngle(180);

Étape 9: Création d'un objet de groupe

dans le start(), créez un objet de groupe en instanciant la classe nommée Group. Cela appartient au packagejavafx.scene.

Passez l'objet PieChart (node), créé à l'étape précédente en tant que paramètre au constructeur de la classe Group. Cela devrait être fait afin de l'ajouter au groupe comme suit -

Group root = new Group(piechart);

Étape 10: Création d'un objet de scène

Créez une scène en instanciant la classe nommée Scene, qui appartient au package javafx.scene. À cette classe, transmettez l'objet Group (root) créé à l'étape précédente.

En plus de l'objet racine, vous pouvez également transmettre deux doubles paramètres représentant la hauteur et la largeur de l'écran, ainsi que l'objet de la classe Group comme indiqué ci-dessous.

Scene scene = new Scene(group ,600, 300);

Étape 11: Définition du titre de la scène

Vous pouvez définir le titre de la scène à l'aide du setTitle() méthode de la Stageclasse. leprimaryStage est un objet de scène, qui est passé à la méthode de démarrage de la classe de scène en tant que paramètre.

En utilisant le primaryStage objet, définissez le titre de la scène comme Sample Application comme suit.

primaryStage.setTitle("Sample Application");

Étape 12: Ajouter une scène à la scène

Vous pouvez ajouter un objet Scene à la scène en utilisant la méthode setScene() de la classe nommée Stage. Ajoutez l'objet Scene préparé aux étapes précédentes à l'aide de cette méthode comme indiqué ci-dessous.

primaryStage.setScene(scene);

Étape 13: Affichage du contenu de la scène

Affichez le contenu de la scène en utilisant la méthode nommée show() du Stage classe comme suit.

primaryStage.show();

Étape 14: Lancement de l'application

Lancez l'application JavaFX en appelant la méthode statique launch() du Application classe de la méthode principale comme suit.

public static void main(String args[]){   
   launch(args);      
}

Exemple

Le tableau ci-dessous illustre la vente mobile à l'aide d'un graphique à secteurs. Le tableau suivant présente une liste des différentes marques de mobiles et leurs ventes (unités par jour).

S. Non Marques mobiles Ventes (unités par jour)
1 Iphone 5s 20
2 Samsung Grand 20
3 MOTO G 40
4 Nokia Lumia dix

Voici un programme Java qui génère un graphique à secteurs, illustrant les données ci-dessus à l'aide de JavaFX. Enregistrez ce code dans un fichier avec le nomPieChartExample.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); 
   } 
}

Compilez et exécutez le fichier java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac PieChartExample.java 
java PieChartExample

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX affichant un graphique à secteurs comme illustré ci-dessous.